2016-07-26 4 views
0

私は簡単にすべきだと感じている問題がありましたが、なぜ期待される結果が返されないのかわかりません。ネストされたループ内のJava ifステートメントが一致していない、最初のオカレンスをカウントします。

私は、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()) 
関連する問題