Junior — Middle
Milyen módon érhető el a Set interfész implementálása Kotlinban, és miben különböznek egymástól?
sobes.tech MI
Válasz az MI-től
Kotlinben a Set interfész többféleképpen valósul meg, amelyek különböznek a módosíthatóságban és a belső megvalósításban:
- Set — ez egy felület az olvasható, módosíthatatlan halmazhoz (csak olvasás). Olyan műveleteket biztosít, amelyek olvasásra szolgálnak, de nem módosításra.
- MutableSet — kiterjeszti a Set-et, és hozzáad módszereket a halmaz módosításához (elemek hozzáadása, törlése).
Megvalósítások:
- HashSet — egy hash-táblán alapul, gyors hozzáférést és hozzáadás/törlés műveleteket biztosít. Az elemek sorrendje nem garantált.
- LinkedHashSet — örökli a HashSet-et, és megőrzi az elemek beszúrási sorrendjét.
- SortedSet / TreeSet (Java-n keresztül) — olyan halmaz, amelyben az elemek természetes sorrend szerint vagy összehasonlító szerint vannak rendezve.
Példa:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // megengedett
// readOnlySet.add(4) // fordítási hiba
Így a megvalósítás kiválasztása a módosíthatósági és az elemek sorrendiségét érintő követelményektől függ.