2016-05-13 16 views
-1

私はcontainsAllメソッドを実装しようとしていますが、なぜそれが不正確な結果を返すのか分かりません。私を助けてください。containsAllメソッドの実装方法

public boolean contains(Object o) { 
    for (int ob = 0; ob < size; ob++) { 
     if (o == obj[ob]) 
      return true; 
    } 
    return false; 
} 



public boolean containsAll(MyList c) { 
    for (int ob = 0; ob < size; ob++) { 
     c.toArray(); 
     if (c.contains(obj[ob])) 

     { 
      return true; 
     } 
    } 

    return false; 
} 

答えて

1

最初に一致する要素が見つかった後、あなたがtrueを返すので、それは、間違った結果を返します。ロジックは、次の行に沿っている必要があります。

for (int ob = 0; ob < size; ob++) { 
    /* ... */ 
    if (!c.contains(obj[ob])) { 
     return false; 
    } 
} 

return true; 

Ie.一致しない最初の要素を見つけてfalseを返し、すべての要素をチェックしてからtrueを返します。

==を使用すると、厳密な同一性比較を実行していることにも注意してください。それがあなたの後でない場合は、代わりにequals()の使用を検討してください。

関連する問題