ホームページ >Java >&#&チュートリアル >Java 配列内の重複する整数を正しく識別するにはどうすればよいですか?
Java 配列、重複の検索
問題:
Java では、整数の配列が与えられます。目標は、配列内の重複要素を特定して報告することです。ただし、重複を検出する現在のアプローチでは、重複が存在しない場合に誤った結果が得られます。
元のコード:
int[] zipcodelist = // ... boolean duplicates = false; for(j = 0; j < zipcodeList.length; j++){ for(k = 0; k < zipcodeList.length; k++){ if (zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
元のコードの問題:
この問題は、配列内に重複がない場合に発生します。内側のループが各要素とそれ自体の間の等価性をチェックするため、このシナリオでもループ構造は重複を true として割り当てます。したがって、重複がない場合、重複は true になります。
重複を検出するコードの改善:
この問題に対処するには、コードを次のように変更できます。
duplicates = false; for (j = 0; j < zipcodeList.length; j++){ for (k = j + 1; k < zipcodeList.length; k++){ if (k != j && zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
説明:
この変更されたコードには追加の条件 (k != j) 内側のループ内。このステップにより、比較が一意の要素間でのみ実行されるようになり、各要素とそれ自体の重複チェックが回避されます。したがって、本物の重複が見つかった場合にのみ重複が true に設定され、正確な結果が得られます。
以上がJava 配列内の重複する整数を正しく識別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。