Java-Array, Duplikate finden
Problem:
In Java wird ein Array von ganzen Zahlen angegeben, und das Ziel besteht darin, alle doppelten Elemente innerhalb des Arrays zu identifizieren und zu melden. Ein aktueller Ansatz zur Erkennung von Duplikaten führt jedoch zu einem falschen Ergebnis, wenn keine Duplikate vorhanden sind.
Originalcode:
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; } } }
Problem im Originalcode:
Das Problem tritt auf, wenn im Array keine Duplikate vorhanden sind. Die Schleifenstruktur weist Duplikate auch in diesem Szenario als wahr zu, da die innere Schleife die Gleichheit zwischen jedem Element und sich selbst prüft. Wenn also keine Duplikate vorhanden sind, sind Duplikate am Ende wahr.
Verbesserter Code zur Erkennung von Duplikaten:
Um dieses Problem zu beheben, kann der Code wie folgt geändert werden:
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; } } }
Erklärung:
Dieser geänderte Code enthält eine zusätzliche Bedingung (k != j) innerhalb der inneren Schleife. Dieser Schritt stellt sicher, dass der Vergleich nur zwischen eindeutigen Elementen durchgeführt wird, wodurch die doppelte Prüfung jedes Elements mit sich selbst vermieden wird. Folglich werden Duplikate nur dann auf „true“ gesetzt, wenn echte Duplikate gefunden werden, was zu einem genauen Ergebnis führt.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Ganzzahlen in einem Java-Array korrekt identifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!