Junior — Middle
Worin besteht der Unterschied zwischen der Implementierung der Collection Set und der Collection ArrayList in Java?
sobes.tech KI
Antwort von AI
Der Hauptunterschied zwischen den Collections Set und ArrayList in Java liegt in ihrem Verhalten und ihrer Implementierung:
- Set — ist eine Sammlung, die keine doppelten Elemente zulässt. Die Reihenfolge der Elemente ist nicht garantiert (z.B. bei HashSet), es gibt jedoch Implementierungen mit Sortierung (TreeSet, LinkedHashSet).
- ArrayList — ist eine sortierte Liste, die Duplikate zulässt und die Einfügereihenfolge beibehält.
Aus Sicht der Implementierung:
- ArrayList basiert auf einem Array, das dynamisch erweitert wird, wenn Elemente hinzugefügt werden. Schneller Zugriff nach Index.
- HashSet wird meist auf HashMap basieren, wobei die Elemente als Schlüssel fungieren. Das sorgt für schnelle Suche und Überprüfung der Einzigartigkeit.
Beispiel:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // wird nicht zweimal hinzugefügt
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // beide Elemente werden hinzugefügt