Java Array: Mengenalpasti Pendua
Apabila mencari pendua dalam tatasusunan, adalah penting untuk mengelakkan perangkap yang boleh membawa kepada keputusan yang salah. Dalam coretan kod yang disediakan, isunya terletak dalam struktur gelung bersarang:
for(j = 0; j < zipcodeList.length; j++){ for(k = 0; k < zipcodeList.length; k++){ if (zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
Pendekatan ini salah menetapkan pendua kepada benar walaupun tiada pendua. Masalah timbul apabila j sama dengan k,' yang mencetuskan syarat zipcodeList[k] == zipcodeList[j]` walaupun untuk elemen unik.
Pada bahagian hidung jawab...
Untuk membetulkan ralat ini, kita boleh memperbaiki struktur gelung dengan memulakan gelung dalam pada k = j 1, seperti yang dilihat di bawah:
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; } } }
Pengubahsuaian ini memastikan kami hanya membandingkan setiap elemen dengan elemen unik yang lain, dengan berkesan menghalang positif palsu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Pendua dengan Cekap dalam Tatasusunan Java dan Mengelak Positif Palsu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!