In diesem Artikel werden zwei Methoden zum Löschen doppelter Elemente aus ArrayList beschrieben, mithilfe von HashSet und LinkedHashSet.
ArrayList ist einer der am häufigsten verwendeten Sammlungstypen in Java. Es ermöglicht das flexible Hinzufügen mehrerer Nullelemente und doppelter Elemente und behält die Einfügereihenfolge der Elemente bei. Beim Codieren stoßen wir häufig auf die Anforderung, dass doppelte Elemente aus einer bereits erstellten ArrayList entfernt werden müssen.
Methode 1: Verwenden Sie HashSet, um doppelte Elemente in ArrayList zu löschen
Bei dieser Methode verwenden wir HashSet, um doppelte Elemente zu löschen. Wie Sie wissen, lässt HashSet keine doppelten Elemente zu. Wir verwenden diese Eigenschaft von HashSet, um doppelte Elemente in der erstellten ArrayList zu löschen. Dieser Ansatz hat jedoch einen Nachteil. Das heißt, die Einfügereihenfolge der Elemente in der ArrayList wird entfernt. Das bedeutet, dass nach dem Entfernen doppelter Elemente die Elemente in der falschen Reihenfolge eingefügt werden. Schauen wir uns zunächst das folgende Beispiel an.
import java.util.ArrayList; import java.util.HashSet; public class MainClass { public static void main(String[] args) { //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("J2EE"); listWithDuplicateElements.add("JSP"); listWithDuplicateElements.add("SERVLETS"); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("STRUTS"); listWithDuplicateElements.add("JSP"); //Printing listWithDuplicateElements System.out.print("ArrayList With Duplicate Elements :"); System.out.println(listWithDuplicateElements); //Constructing HashSet using listWithDuplicateElements HashSet<String> set = new HashSet<String>(listWithDuplicateElements); //Constructing listWithoutDuplicateElements using set ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set); //Printing listWithoutDuplicateElements System.out.print("ArrayList After Removing Duplicate Elements :"); System.out.println(listWithoutDuplicateElements); } }
Ausgabe:
ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP] ArrayList After Removing Duplicate Elements :[JAVA, SERVLETS, JSP, J2EE, STRUTS]
Achten Sie auf die Ausgabe. Sie werden feststellen, dass nach dem Entfernen doppelter Elemente die Elemente neu gemischt werden. Nicht mehr in Einfügungsreihenfolge angeordnet. Diese Methode wird nicht empfohlen, wenn Sie die Einfügereihenfolge der Elemente beibehalten möchten, nachdem Sie doppelte Elemente entfernt haben. Es gibt eine andere Möglichkeit, sicherzustellen, dass die Einfügereihenfolge von Elementen nach dem Entfernen doppelter Elemente nicht geändert wird. Das heißt, LinkedHashSet zu verwenden.
Methode 2: Verwenden Sie LinkedHashSet, um doppelte Elemente in ArrayList zu löschen
Bei dieser Methode verwenden wir LinkedHashSet, um doppelte Elemente in ArrayList zu löschen. Wie Sie wissen, lässt LinkedHashSet keine doppelten Elemente zu, während die Einfügereihenfolge der Elemente beibehalten wird. Diese beiden Eigenschaften von LinkedHashSet können sicherstellen, dass die Einfügereihenfolge von Elementen nach dem Löschen doppelter Elemente in ArrayList weiterhin beibehalten wird. Siehe Beispiel unten.
import java.util.ArrayList; import java.util.LinkedHashSet; public class MainClass { public static void main(String[] args) { //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("J2EE"); listWithDuplicateElements.add("JSP"); listWithDuplicateElements.add("SERVLETS"); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("STRUTS"); listWithDuplicateElements.add("JSP"); //Printing listWithDuplicateElements System.out.print("ArrayList With Duplicate Elements :"); System.out.println(listWithDuplicateElements); //Constructing LinkedHashSet using listWithDuplicateElements LinkedHashSet<String> set = new LinkedHashSet<String>(listWithDuplicateElements); //Constructing listWithoutDuplicateElements using set ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set); //Printing listWithoutDuplicateElements System.out.print("ArrayList After Removing Duplicate Elements :"); System.out.println(listWithoutDuplicateElements); } }
Ausgabe:
ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP] ArrayList After Removing Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, STRUTS]
Achten Sie auf die Ausgabe. Sie können feststellen, dass nach dem Löschen doppelter Elemente in der ArrayList die Einfügereihenfolge der Elemente weiterhin beibehalten wird.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Weitere 2 Java-Methoden zum Löschen doppelter Elemente in ArrayList finden Sie auf der chinesischen PHP-Website für verwandte Artikel!