Milyen típusú gyűjteményeket támogat a Kotlin?
sobes.tech MI
Válasz az MI-től
A Kotlin támogatja a Java Collection Framework szabványos kollekciótípusait, valamint saját kényelmes kiterjesztéseit és interfészeit.
A Kotlin fő kollekciós interfészei:
Collection<out E>: Az alapértelmezett interfész az immutable kollekciókhoz.MutableCollection<E>: Az módosítható kollekciók interfésze.List<out E>: Az indexelt, immutable kollekciók interfésze.MutableList<E>: Az indexelt, módosítható kollekciók interfésze.Set<out E>: Az egyedi elemekből álló, nem sorrend szerinti, immutable kollekciók interfésze.MutableSet<E>: Az egyedi elemekből álló, nem sorrend szerinti, módosítható kollekciók interfésze.Map<K, out V>: A kulcs-érték párokat tartalmazó, immutable kollekciók interfésze.MutableMap<K, V>: A kulcs-érték párokat tartalmazó, módosítható kollekciók interfésze.
A Kotlin standard könyvtárának fő kollekció-implementációi (gyakran használják konstruktorfüggvényekkel):
ArrayList: Egy tömbön alapuló módosítható lista.LinkedList: Egy láncolt lista alapú módosítható lista.HashSet: Egy hash-táblán alapuló módosítható halmaz.LinkedHashSet: Egy hash-táblán és láncolt listán alapuló módosítható halmaz (megőrzi a beszúrás sorrendjét).HashMap: Egy hash-táblán alapuló módosítható térkép.LinkedHashMap: Egy hash-táblán és láncolt listán alapuló módosítható térkép (megőrzi a beszúrás sorrendjét).
Kollekciók létrehozásának példái:
// Nem módosítható lista
val immutableList = listOf("a", "b", "c")
// Módosítható lista
val mutableList = mutableListOf(1, 2, 3)
// Nem módosítható halmaz
val immutableSet = setOf("apple", "banana")
// Módosítható halmaz
val mutableSet = mutableSetOf(10, 20, 30)
// Nem módosítható térkép
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// Módosítható térkép
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
A fő különbség a módosítható (Mutable*) és az immutábilis (*) verziók között az, hogy a módosítható kollekciók tartalmaznak módszereket az elemek hozzáadására, törlésére és módosítására, míg az immutábilis kollekciók nem. A konstruktorfüggvények listOf, setOf, mapOf immutábilis kollekciókat hoznak létre, míg a mutableListOf, mutableSetOf, mutableMapOf módosíthatóakat.
A Kotlin kollekcióinak használatának előnyei:
- Biztonság: Az immutábilis kollekciók alapértelmezés szerint segítenek elkerülni a nem szándékolt módosításokat.
- Kiterjesztések: A Kotlin számos hasznos kiterjesztő függvényt kínál a kollekciókkal való munkához (
filter,map,forEach, stb.). - Interoperabilitás: Könnyű meglévő Java-kóddal dolgozni, amely a Java Collection Framework kollekcióit használja.