Java Array, recherche de doublons
Problème :
En Java, un tableau d'entiers est donné, et l'objectif est d'identifier et de signaler tout élément en double dans le tableau. Cependant, une approche actuelle pour détecter les doublons donne un résultat incorrect lorsqu'aucun doublon n'existe.
Code d'origine :
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; } } }
Problème dans le code d'origine :
Le problème survient lorsqu'il n'y a pas de doublons dans le tableau. La structure de boucle attribue les doublons comme vrais même dans ce scénario car la boucle interne vérifie l'égalité entre chaque élément et lui-même. Par conséquent, lorsqu'il n'y a pas de doublons, les doublons finissent par être vrais.
Code amélioré pour détecter les doublons :
Pour résoudre ce problème, le code peut être modifié comme suit :
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; } } }
Explication :
Ce code modifié inclut une condition supplémentaire (k != j) dans la boucle intérieure. Cette étape garantit que la comparaison n'est effectuée qu'entre des éléments uniques, évitant ainsi la vérification en double de chaque élément avec lui-même. Par conséquent, les doublons ne seront définis sur vrai que lorsque de véritables doublons seront rencontrés, ce qui donnera un résultat précis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!