2014-05-06 144 views
-1

我正在製作一個小程序,其中的一部分針對陣列列表中的每個競爭對手的能力,對不同競爭者進行迭代,以將不同競爭者排序爲映射。除了一個問題之外,它似乎起作用。第一條if語句不起作用。任何被分類爲beginer的競爭者都不會被分類爲beginerResults,而是被歸類爲standardResults。其他人工作正常。有什麼建議麼?使用迭代將陣列列表排序映射到地圖

public void sort() 
    { 
    for (Golfer rating : competitors) 
    { 

     if (competitors.getScore()== "beginer") 
     { 
     beginerResults.put(competitor.getName()); 
     } 
     if (competitors.getScore()== "Intermediate") 
     { 
     intermediateResults.put(competitor.getName()); 
     } 
     else 
     { 
     expertResults.put(age.getName()); 
     } 
    } 
    } 
+1

您比較字符串錯誤,請參閱鄒鄒提供的鏈接。另外,在你的例子中沒有Maps,一個'Map.put'需要一個'key'和一個'value',也許你的意思是'Set'? – Taylor

+0

您從不使用當前迭代的變量('rating'),只是您正在迭代的集合(「競爭對手」)。 –

回答

0

更改String攀比

competitors.getScore().equals("beginer")

甚至更​​好的

"beginer".equals(competitors.getScore())

比較Strings==一般不這樣做的正確方法。

另外,beginer拼寫錯誤,請檢查呼叫代碼是否有拼寫錯誤
。如果它拼寫正確,那麼這可能是你的主要問題。