配列内で重複する値を検索し、それが 2 回発生したときに true を返すメソッドを作成しようとしています (それ以外の場合は false を返します)。
私は何かを持っていますが、何らかの理由で、特定のケースでは正しく動作しません:
public static boolean twoDuplicates(int[] values) {
boolean twoDuplicate = false;
int counter = 0;
for(int i = 0; i < values.length; i++){
for(int z = i + 1; z <= values.length - 1; z++){
if(i != z && values[i] == values[z])
counter++;
}
}
if(counter == 2)
twoDuplicate = true;
return twoDuplicate;
}
今、テストしましたが、値が [3,3,3,6,6] の場合は機能しません。理由はありますか?
編集:重複は区別する必要があることを忘れていました。