Junior — Middle
Welche Implementierungsarten der Set-Schnittstelle sind in Kotlin verfügbar und worin unterscheiden sie sich?
sobes.tech KI
Antwort von AI
In Kotlin wird die Schnittstelle Set auf verschiedene Weisen implementiert, die sich in Mutabilität und interner Implementierung unterscheiden:
- Set — ist eine Schnittstelle für eine unveränderliche Menge (nur Lesemodus). Sie bietet Operationen zum Lesen, aber nicht zum Ändern.
- MutableSet — erweitert Set und fügt Methoden zum Ändern der Menge hinzu (Hinzufügen, Entfernen von Elementen).
Implementierungen:
- HashSet — basiert auf einer Hashtabelle, bietet schnellen Zugriff und Operationen zum Hinzufügen/Entfernen. Die Reihenfolge der Elemente ist nicht garantiert.
- LinkedHashSet — erbt von HashSet, bewahrt die Einfügereihenfolge der Elemente.
- SortedSet / TreeSet (über Java) — Menge, deren Elemente nach natürlicher Ordnung oder einem Comparator sortiert sind.
Beispiel:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // erlaubt
// readOnlySet.add(4) // Kompilierungsfehler
Die Wahl der Implementierung hängt also von den Anforderungen an Mutabilität und Reihenfolge der Elemente ab.