In Java ist ein Set eine Datenstruktur, die eine Sammlung von Elementen speichert, wobei jedes Element einzigartig ist, d. h., Duplikate sind nicht erlaubt. Das Set-Interface ist Teil des java.util-Pakets und bietet eine Reihe von Methoden zur Verwaltung von Mengen. Im Folgenden gebe ich dir eine Übersicht über die wichtigsten Aspekte von Sets in Java.
Keine Duplikate: Ein Set
speichert nur einzigartige Elemente. Wenn du versuchst, ein Duplikat hinzuzufügen, wird es ignoriert.
Null-Werte: HashSet
und LinkedHashSet
erlauben null
-Werte, aber nur einen einzigen null
-Wert. TreeSet
erlaubt keine null
-Werte, da es für die Sortierung null
-Werte nicht handhaben kann.
Ungeordnete Sammlung: Die Elemente in einem HashSet
sind nicht in einer bestimmten Reihenfolge gespeichert. LinkedHashSet
hingegen speichert die Reihenfolge der Einfügungen, und TreeSet
speichert die Elemente in natürlicher Reihenfolge oder in einer angegebenen Sortierreihenfolge.
Java bietet verschiedene Implementierungen des Set-Interfaces, jede mit unterschiedlichen Eigenschaften:
HashSet
: Die am häufigsten verwendete Set-Implementierung, die auf einer Hash-Tabelle basiert. HashSet
garantiert keine Reihenfolge der Elemente.
Set<String> hashSet = new HashSet<>();
LinkedHashSet: Erweitert HashSet, behält aber die Reihenfolge bei, in der die Elemente eingefügt wurden.
Set<String> linkedHashSet = new LinkedHashSet<>();
TreeSet: Eine Implementierung des NavigableSet-Interfaces, die Elemente in aufsteigender Reihenfolge speichert (sortierte Reihenfolge). TreeSet basiert auf einem Rot-Schwarz-Baum.
Set<String> treeSet = new TreeSet<>();
Methoden für Sets in Java
Elemente hinzufügen
Elemente zu einem Set hinzuzufügen erfolgt mit der add()-Methode:
Set<String> set = new HashSet<>();
set.add("Apfel");
set.add("Banane");
set.add("Apfel"); // Dieses Element wird nicht hinzugefügt, da es ein Duplikat ist
Elemente entfernen
Mit der remove()-Methode kannst du ein bestimmtes Element entfernen:
set.remove("Banane");
Überprüfung auf ein Element
Um zu prüfen, ob ein Element im Set vorhanden ist, verwendest du die contains()-Methode:
boolean exists = set.contains("Apfel"); // Gibt true zurück, wenn "Apfel" vorhanden ist
Set-Größe
Die Anzahl der Elemente im Set kannst du mit der size()-Methode ermitteln:
int size = set.size(); // Gibt die Anzahl der Elemente im Set zurück
Iteration über ein Set
Du kannst ein Set mit einer for-each-Schleife durchlaufen:
for (String item : set) {
System.out.println(item);
}