Duplikate aus einer Liste entfernen
Beim Arbeiten mit Listen in Java kann es notwendig sein, doppelte Elemente zu entfernen. Ein häufiger Versuch besteht darin, mithilfe einer for-Schleife zu prüfen, ob jedes Element bereits in der Liste vorhanden ist, bevor es hinzugefügt wird. Dieser Ansatz kann jedoch ineffizient und fehleranfällig sein.
Problem:
Sie haben beschrieben, dass beim Versuch, Duplikate aus einer Liste von Kundenobjekten zu entfernen, ein Problem aufgetreten ist. Ihr Code verwendet eine for-Schleife, um zu prüfen, ob ein Kunde noch nicht in der Liste vorhanden ist, bevor er hinzugefügt wird.
Lösung:
Die bereitgestellte Lösung bietet eine effizientere und effizientere Lösung prägnanter Ansatz zum Entfernen von Duplikaten unter Beibehaltung der ursprünglichen Reihenfolge der Liste. Es nutzt die LinkedHashSet-Klasse, die eine verknüpfte Liste von Elementen basierend auf ihrer Einfügereihenfolge verwaltet und automatisch Duplikate entfernt.
Verwendung von LinkedHashSet:
Das folgende Codefragment zeigt, wie So verwenden Sie ein LinkedHashSet, um Duplikate zu entfernen und gleichzeitig die Reihenfolge aufrechtzuerhalten:
<code class="java">List<Customer> depdupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>
Diese Zeile erstellt ein neues LinkedHashSet aus der Kundenliste, was zu einer Reihe eindeutiger Kunden führt. Der Satz wird dann wieder in eine geordnete Liste (ArrayList) umgewandelt.
Ändern der ursprünglichen Liste:
Wenn Sie die ursprüngliche Liste ändern möchten, können Sie die verwenden Folgender Code:
<code class="java">Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers); customers.clear(); customers.addAll(dedupeCustomers);</code>
Dieser Code konvertiert die Liste in ein LinkedHashSet, entfernt Duplikate, löscht die ursprüngliche Liste und fügt ihr dann die eindeutigen Elemente wieder hinzu, wodurch Duplikate effektiv aus der ursprünglichen Liste entfernt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Duplikate aus einer Liste in Java entfernen und gleichzeitig die Reihenfolge beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!