**This is an old revision of the document!**
<!DOCTYPE markdown>
Set
Ein Set eine Sammlung, die keine doppelten Elemente zulässt.
Setist eine Schnittstelle (Interface) in der Java-Collection-API.- Sie definiert die grundlegenden Eigenschaften einer Menge (z. B. keine Duplikate, Sammlung von Objekten).
- Sie ist abstrakt und kann nicht direkt instanziiert werden.
- Sie wird von verschiedenen Klassen wie
HashSet,LinkedHashSetundTreeSetimplementiert. - Methoden von
Set(z. B.add(),remove(),contains()) sind nur deklariert, nicht implementiert.
Wichtige Eigenschaften von Sets:
- Keine Duplikate: Ein Set speichert jedes Element nur einmal. Wenn versucht wird, ein doppeltes Element hinzuzufügen, wird es ignoriert.
- Keine feste Reihenfolge: Die Reihenfolge der Elemente ist nicht garantiert (außer bei speziellen Implementierungen wie
LinkedHashSetoderTreeSet). - Implementierungen: Die gängigsten Implementierungen von
Setsind:HashSet: Schnelle Zugriffe, keine bestimmte Reihenfolge.LinkedHashSet: Behält die Einfügereihenfolge bei.TreeSet: Sortiert die Elemente in natürlicher Reihenfolge oder nach einem benutzerdefinierten Comparator.
import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) { // Ein Set erstellen Set<String> fruits = new HashSet<>(); // Elemente hinzufügen fruits.add("Apfel"); fruits.add("Banane"); fruits.add("Orange"); fruits.add("Apfel"); // Duplikat, wird ignoriert // Set ausgeben System.out.println("Früchte im Set: " + fruits); // Prüfen, ob ein Element enthalten ist if (fruits.contains("Banane")) { System.out.println("Die Banane ist im Set."); } // Element entfernen fruits.remove("Orange"); System.out.println("Nach dem Entfernen der Orange: " + fruits); // Iteration über das Set System.out.println("Alle Früchte:"); for (String fruit : fruits) { System.out.println(fruit); } } }In diesem Code wird die
Set-Schnittstelle verwendet, aber ihre konkrete Implementierung ist HashSet. Das gibt dir die Flexibilität, später die Implementierung zu ändern (z. B. auf TreeSet oder LinkedHashSet), ohne den Rest des Codes zu beeinflussen.
Methoden und Iteration:
add(): Fügt Elemente zum Set hinzu. Wenn ein Element schon existiert, wird es nicht erneut hinzugefügt.contains(): Prüft, ob ein bestimmtes Element im Set enthalten ist.remove(): Entfernt ein Element aus dem Set.- Iteration: Mit einer
for-each-Schleife kann man alle Elemente im Set durchlaufen.