Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java LinkedHashSet meistern: Funktionen, Methoden und praktische Beispiele

Java LinkedHashSet

In diesem Tutorial lernen wir die Java LinkedHashSet-Klasse und ihre Methoden anhand von Beispielen kennen.

Die LinkedHashSet-Klasse des Java Collections Frameworks bietet Funktionalitäten sowohl der Hashtable als auch der verketteten Liste Datenstruktur.

Sie implementiert das Set-Interface.

Java LinkedHashSet meistern: Funktionen, Methoden und praktische Beispiele

Elemente von LinkedHashSet werden in Hashtables ähnlich wie HashSet gespeichert.

Jedoch bewahren Linked Hash Sets intern eine doppelt verkettete Liste für alle ihre Elemente. Die verkettete Liste definiert die Reihenfolge, in der Elemente in Hashtables eingefügt werden.


LinkedHashSet erstellen

Um ein Linked Hash Set zu erstellen, müssen wir zuerst das java.util.LinkedHashSet-Paket importieren.

Nach dem Import können wir Linked Hash Sets in Java wie folgt erstellen.

 // LinkedHashSet mit 8 Kapazität und 0.75 Load Factor LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75); 

Hier haben wir ein Linked Hash Set namens numbers erstellt.

Beachten Sie den Teil new LinkedHashSet<>(8, 0.75). Hier ist der erste Parameter Kapazität und der zweite LoadFactor.

Standardkapazität und Load Factor

Es ist möglich, ein Linked Hash Set ohne Definition von Kapazität und Load Factor zu erstellen. Zum Beispiel,

 // LinkedHashSet mit Standardkapazität und Load Factor LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>(); 

Standardmäßig:


LinkedHashSet aus anderen Collections erstellen

So erstellen wir ein Linked Hash Set, das alle Elemente anderer Collections enthält.

 import java.util.LinkedHashSet; import java.util.ArrayList; class Main { public static void main(String[] args) { // ArrayList mit geraden Zahlen erstellen ArrayList<Integer> evenNumbers = new ArrayList<>(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("ArrayList: " + evenNumbers); // LinkedHashSet aus ArrayList erstellen LinkedHashSet<Integer> numbers = new LinkedHashSet<>(evenNumbers); System.out.println("LinkedHashSet: " + numbers); } } 

Ausgabe

 ArrayList: [2, 4] LinkedHashSet: [2, 4] 

Methoden von LinkedHashSet

Die LinkedHashSet-Klasse stellt Methoden bereit, um verschiedene Operationen auf dem Linked Hash Set durchzuführen.


Elemente in LinkedHashSet einfügen

Zum Beispiel,

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> evenNumber = new LinkedHashSet<>(); // add() Methode verwenden evenNumber.add(2); evenNumber.add(4); evenNumber.add(6); System.out.println("LinkedHashSet: " + evenNumber); LinkedHashSet<Integer> numbers = new LinkedHashSet<>(); // addAll() Methode verwenden numbers.addAll(evenNumber); numbers.add(5); System.out.println("New LinkedHashSet: " + numbers); } } 

Ausgabe

 LinkedHashSet: [2, 4, 6] New LinkedHashSet: [2, 4, 6, 5] 

Auf LinkedHashSet-Elemente zugreifen

Um auf Elemente eines Linked Hash Sets zuzugreifen, können wir die iterator() Methode verwenden. Dazu müssen wir das java.util.Iterator Paket importieren. Zum Beispiel,

 import java.util.LinkedHashSet; import java.util.Iterator; class Main { public static void main(String[] args) { LinkedHashSet<Integer> numbers = new LinkedHashSet<>(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("LinkedHashSet: " + numbers); // iterator() Methode aufrufen Iterator<Integer> iterate = numbers.iterator(); System.out.print("LinkedHashSet using Iterator: "); // Elemente zugreifen while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } } 

Ausgabe

 LinkedHashSet: [2, 5, 6] LinkedHashSet using Iterator: 2, 5, 6, 

Hinweis:


Elemente aus HashSet entfernen

Zum Beispiel,

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> numbers = new LinkedHashSet<>(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("LinkedHashSet: " + numbers); // remove() Methode verwenden boolean value1 = numbers.remove(5); System.out.println("Is 5 removed? " + value1); boolean value2 = numbers.removeAll(numbers); System.out.println("Are all elements removed? " + value2); } } 

Ausgabe

 LinkedHashSet: [2, 5, 6] Is 5 removed? true Are all elements removed? true 

Mengenoperationen

Die verschiedenen Methoden der LinkedHashSet-Klasse können auch für diverse Mengenoperationen genutzt werden.


Vereinigung von Sets

Für die Vereinigung zweier Sets nutzen wir die addAll() Methode. Zum Beispiel,

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("LinkedHashSet1: " + evenNumbers); LinkedHashSet<Integer> numbers = new LinkedHashSet<>(); numbers.add(1); numbers.add(3); System.out.println("LinkedHashSet2: " + numbers); // Vereinigung zweier Sets numbers.addAll(evenNumbers); System.out.println("Union is: " + numbers); } } 

Ausgabe

 LinkedHashSet1: [2, 4] LinkedHashSet2: [1, 3] Union is: [1, 3, 2, 4] 

Schnittmenge von Sets

Für die Schnittmenge zweier Sets nutzen wir die retainAll() Methode. Zum Beispiel

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("LinkedHashSet1: " + primeNumbers); LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("LinkedHashSet2: " + evenNumbers); // Schnittmenge zweier Sets evenNumbers.retainAll(primeNumbers); System.out.println("Intersection is: " + evenNumbers); } } 

Ausgabe

 LinkedHashSet1: [2, 3] LinkedHashSet2: [2, 4] Intersection is: [2] 

Differenz von Sets

Um die Differenz zwischen zwei Sets zu berechnen, nutzen wir die removeAll() Methode. Zum Beispiel,

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>(); primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("LinkedHashSet1: " + primeNumbers); LinkedHashSet<Integer> oddNumbers = new LinkedHashSet<>(); oddNumbers.add(1); oddNumbers.add(3); oddNumbers.add(5); System.out.println("LinkedHashSet2: " + oddNumbers); // Differenz zwischen LinkedHashSet1 und LinkedHashSet2 primeNumbers.removeAll(oddNumbers); System.out.println("Difference : " + primeNumbers); } } 

Ausgabe

 LinkedHashSet1: [2, 3, 5] LinkedHashSet2: [1, 3, 5] Difference: [2] 

Teilmenge

Um zu prüfen, ob ein Set Teilmenge eines anderen ist, nutzen wir containsAll(). Zum Beispiel,

 import java.util.LinkedHashSet; class Main { public static void main(String[] args) { LinkedHashSet<Integer> numbers = new LinkedHashSet<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); System.out.println("LinkedHashSet1: " + numbers); LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("LinkedHashSet2: " + primeNumbers); // Prüfen ob primeNumbers Teilmenge von numbers boolean result = numbers.containsAll(primeNumbers); System.out.println("Is LinkedHashSet2 is subset of LinkedHashSet1? " + result); } } 

Ausgabe

 LinkedHashSet1: [1, 2, 3, 4] LinkedHashSet2: [2, 3] Is LinkedHashSet2 is a subset of LinkedHashSet1? true 

Weitere Methoden von LinkedHashSet

Methode Beschreibung
clone() Erstellt Kopie des LinkedHashSet
contains() Sucht LinkedHashSet nach angegebenem Element und gibt boolean zurück
isEmpty() Prüft ob LinkedHashSet leer ist
size() Gibt Größe des LinkedHashSet zurück
clear() Entfernt alle Elemente aus LinkedHashSet

Um mehr über LinkedHashSet Methoden zu erfahren, besuchen Sie Java LinkedHashSet (offizielle Java Dokumentation).


LinkedHashSet vs. HashSet

Sowohl LinkedHashSet als auch HashSet implementieren das Set-Interface. Allerdings gibt es Unterschiede:



LinkedHashSet vs. TreeSet

Hier sind die Hauptunterschiede zwischen LinkedHashSet und TreeSet:


Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList