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

Java HashSet-Klasse: Vollständiger Leitfaden zu Operationen, Methoden und Mengenlehre

Java HashSet-Klasse

Erkunden Sie die Java HashSet-Klasse – ihre Erstellung, Kernmethoden und praktische Mengenoperationen – durch prägnante Beispiele.

Die HashSet-Klasse, Teil von Javas Collections Framework, implementiert das Set-Interface und bietet Hashtable-basierten Speicher.

Java HashSet-Klasse: Vollständiger Leitfaden zu Operationen, Methoden und Mengenlehre

HashSet erstellen

Zuerst java.util.HashSet importieren:

import java.util.HashSet; 

Dann HashSet mit spezifischer Kapazität und Load Factor erstellen:

HashSet<Integer> numbers = new HashSet<>(8, 0.75); // capacity=8, loadFactor=0.75 

Parameter:

Defaults sind auch üblich:

HashSet<Integer> numbers1 = new HashSet<>(); // capacity=16, loadFactor=0.75 

HashSet-Methoden

Unten die häufigsten Methoden:

Elemente einfügen

Beispiel mit add und addAll:

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

Ausgabe

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

Auf Elemente zugreifen

Iterieren mit Iterator:

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

Ausgabe

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

Elemente entfernen

Einzelnes Entfernen und Set leeren:

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

Ausgabe

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

Mengenoperationen

HashSets Bulk-Methoden unterstützen klassische Mengenlehre-Operationen.

Vereinigung

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

Ausgabe

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

Schnittmenge

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

Ausgabe

Intersection is: [2] 

Differenz

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

Ausgabe

Difference: [2] 

Teilmengenprüfung

import java.util.HashSet; class Main { public static void main(String[] args) { HashSet<Integer> numbers = new HashSet<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); HashSet<Integer> primeNumbers = new HashSet<>(); primeNumbers.add(2); primeNumbers.add(3); boolean isSubset = numbers.containsAll(primeNumbers); System.out.println("Is primeNumbers a subset of numbers? " + isSubset); } } 

Ausgabe

Is primeNumbers a subset of numbers? true 

Zusätzliche Methoden

MethodeBeschreibung
clone()Erstellt flache Kopie des Sets.
contains()Prüft ob Element existiert.
isEmpty()Gibt true falls Set leer.
size()Anzahl Elemente im Set.
clear()Entfernt alle Elemente.

Für vollständige Liste siehe offizielle Java Dokumentation.

Warum HashSet verwenden?

Wenn zufälliger Zugriff erforderlich ist, bietet HashSet O(1)-Performance dank Hashtable-Backing. Jedes Elements hashCode() garantiert Einzigartigkeit und verhindert Duplikate. Allerdings ist HashSet nicht thread-sicher; externe Synchronisation nötig für konkurrierende Nutzung.

Hinweis: Da HashSet unsynchronisiert ist, können mehrere Threads, die es concurrent modifizieren, die Datenstruktur korrumpieren.


Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  4. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  5. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  6. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  7. Java Collections Algorithmen meistern: Sortieren, Mischen und mehr
  8. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen