Junior
Was ist der Unterschied zwischen List und Set in Java?
sobes.tech KI
Antwort von AI
Hauptunterschiede:
- Reihenfolge der Elemente:
Listbehält die Reihenfolge bei, in der Elemente hinzugefügt werden.Setgarantiert die Reihenfolge nicht (abhängig von der konkreten Implementierung, z.B.LinkedHashSetbehält die Einfügereihenfolge bei).
- Duplikate:
Listerlaubt doppelte Elemente.Setspeichert nur eindeutige Elemente.
- Zugriff auf Elemente:
Listermöglicht den Zugriff auf Elemente per Index.Setbietet keinen direkten Zugriff auf Elemente per Index, Zugriff erfolgt über Iterator oder Schleife.
- Leistung:
- Such- und Hinzufügevorgänge in
Listmit vielen Elementen können langsamer sein als inSet(z.B. beiHashSet). - Hinzufügen und Entfernen in
Set(z.B.HashSet) haben in der Regel eine durchschnittliche konstante Laufzeitkomplexität.
- Such- und Hinzufügevorgänge in
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 |