Heim > Java > javaLernprogramm > Hauptteil

2 Möglichkeiten, doppelte Elemente in ArrayList in Java zu löschen

高洛峰
Freigeben: 2017-01-22 16:08:25
Original
1375 Leute haben es durchsucht

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);
 }
}
Nach dem Login kopieren


Ausgabe:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]
ArrayList After Removing Duplicate Elements :[JAVA, SERVLETS, JSP, J2EE, STRUTS]
Nach dem Login kopieren

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);
 }
}
Nach dem Login kopieren


Ausgabe:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]
ArrayList After Removing Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, STRUTS]
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage