Sobes.tech
Junior

Was ist der Unterschied zwischen List und Set in Java?

sobes.tech KI

Antwort von AI

Hauptunterschiede:

  1. Reihenfolge der Elemente:
    • List behält die Reihenfolge bei, in der Elemente hinzugefügt werden.
    • Set garantiert die Reihenfolge nicht (abhängig von der konkreten Implementierung, z.B. LinkedHashSet behält die Einfügereihenfolge bei).
  2. Duplikate:
    • List erlaubt doppelte Elemente.
    • Set speichert nur eindeutige Elemente.
  3. Zugriff auf Elemente:
    • List ermöglicht den Zugriff auf Elemente per Index.
    • Set bietet keinen direkten Zugriff auf Elemente per Index, Zugriff erfolgt über Iterator oder Schleife.
  4. Leistung:
    • Such- und Hinzufügevorgänge in List mit vielen Elementen können langsamer sein als in Set (z.B. bei HashSet).
    • Hinzufügen und Entfernen in Set (z.B. HashSet) haben in der Regel eine durchschnittliche konstante Laufzeitkomplexität.

Beispiel:

// Liste, die Duplikate erlaubt und die Reihenfolge beibehält
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Ausgabe: [Apple, Banana, Apple]

// Menge, die nur eindeutige Elemente speichert
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Ausgabe: [Apple, Banana] (Reihenfolge kann variieren)

Vergleichstabelle:

Aspekt List Set
Reihenfolge Wird beibehalten Nicht garantiert (abhängig von der Implementierung)
Duplikate Erlaubt Nicht erlaubt
Zugriff per Index Ja Nein
Schnittstelle java.util.List java.util.Set
Typischer Gebrauch Geordnete Sammlungen, Listen Einzigartige Sammlungen, Mengen