Java Array, Mencari Pendua
Masalah:
Di Java, tatasusunan integer diberikan, dan matlamatnya adalah untuk mengenal pasti dan melaporkan sebarang unsur pendua dalam tatasusunan. Walau bagaimanapun, pendekatan semasa untuk mengesan pendua menghasilkan hasil yang salah apabila tiada pendua wujud.
Kod Asal:
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; } } }
Isu dalam Kod Asal:
Isu timbul apabila tiada pendua dalam tatasusunan. Struktur gelung menetapkan pendua sebagai benar walaupun dalam senario ini kerana gelung dalam menyemak kesamaan antara setiap elemen dan dirinya sendiri. Oleh itu, apabila tiada pendua, pendua akhirnya menjadi benar.
Kod Yang Diperbaiki untuk Mengesan Pendua:
Untuk menangani isu ini, kod boleh diubah suai seperti berikut:
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; } } }
Penjelasan:
Kod yang diubah suai ini termasuk keadaan tambahan (k != j) dalam gelung dalam. Langkah ini memastikan bahawa perbandingan hanya dilakukan antara elemen unik, mengelakkan pemeriksaan pendua setiap elemen dengan elemen itu sendiri. Akibatnya, pendua hanya akan ditetapkan kepada benar apabila pendua tulen ditemui, menghasilkan hasil yang tepat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengenalpasti Integer Pendua dengan Betul dalam Tatasusunan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!