2016-07-26 44 views
0

我一直有一個問題,我覺得應該很簡單,但我不明白爲什麼它沒有返回預期的結果。如果嵌套循環中的Java語句不匹配,首次出現計數

我有一個名爲User的字符串和一個名爲Sales的對象列表的數組。在Sales內有一個名爲User的字段。我想要做的是爲數組中的每個用戶,我希望匹配銷售對象。

String[] User = {"John","Bob","Pete"}; 

    //The sales object looks like 

    { 
    User: Bob 
    Dep: Hardware 
    } 

    { 
    User: Bob 
    Dep: Software 
    } 
... 

//The nested loop looks like 

    for (int i = 0; i < User.length; i++) 
     { 
     for (int j = 0; j < Sales.size(); j++) 
     { 
       if (User[i] == Sales.get(j).getUser()) 
       { 
         System.out.println(Sales.get(j).getUser() + Sales.get(j).getDep() 
      } 
      } 

我所期待的印刷是:

鮑勃硬件

鮑勃軟件

但是,所有我看到的是

鮑勃硬件

任何人都可以看到我的邏輯/方法有什麼問題?

+0

用戶[I] .equals(Sales.get(j)的.getUser()) –

+0

http://stackoverflow.com/questions/1643067/whats-the-difference-between-equals-and –

+0

的嵌套循環不是問題。沒有它你可以測試相同的行爲 –

回答

-1

將您的字符串與equals方法進行比較。

User[i].equals(Sales.get(j).getUser())