Junior
Aké typy kolekcií podporuje Kotlin?
sobes.tech AI
Odpoveď od AI
Kotlin podporuje štandardné typy kolekcií z Java Collection Framework a tiež poskytuje svoje pohodlné rozšírenia a rozhrania.
Hlavné rozhrania kolekcií v Kotlin:
Collection<out E>: Základné rozhranie pre nemenné kolekcie.MutableCollection<E>: Rozhranie pre meniteľné kolekcie.List<out E>: Rozhranie pre nemenné kolekcie s usporiadaným prístupom podľa indexu.MutableList<E>: Rozhranie pre meniteľné kolekcie s usporiadaným prístupom podľa indexu.Set<out E>: Rozhranie pre nemenné kolekcie unikátnych prvkov bez určeného poradia.MutableSet<E>: Rozhranie pre meniteľné kolekcie unikátnych prvkov bez určeného poradia.Map<K, out V>: Rozhranie pre nemenné kolekcie dvojíc "kľúč-hodnota".MutableMap<K, V>: Rozhranie pre meniteľné kolekcie dvojíc "kľúč-hodnota".
Hlavné implementácie kolekcií v štandardnej knižnici Kotlin (často používané konštrukčné funkcie):
ArrayList: Meniteľný zoznam založený na poli.LinkedList: Meniteľný zoznam založený na prepojenom zozname.HashSet: Meniteľná množina založená na hash tabuľke.LinkedHashSet: Meniteľná množina založená na hash tabuľke a prepojenom zozname (uchováva poradie pridania).HashMap: Meniteľná mapa založená na hash tabuľke.LinkedHashMap: Meniteľná mapa založená na hash tabuľke a prepojenom zozname (uchováva poradie pridania).
Príklady vytvárania kolekcií:
// Nemenný zoznam
val immutableList = listOf("a", "b", "c")
// Meniteľný zoznam
val mutableList = mutableListOf(1, 2, 3)
// Nemenná množina
val immutableSet = setOf("apple", "banana")
// Meniteľná množina
val mutableSet = mutableSetOf(10, 20, 30)
// Nemenná mapa
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// Meniteľná mapa
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
Kľúčový rozdiel medzi meniteľnými (Mutable*) a nemennými (*) verziami je v tom, že meniteľné kolekcie poskytujú metódy na pridávanie, odstraňovanie a zmenu prvkov, zatiaľ čo nemenné kolekcie to nedokážu. Funkcie-stavitelia listOf, setOf, mapOf vytvárajú nemenné kolekcie, zatiaľ čo mutableListOf, mutableSetOf, mutableMapOf sú meniteľné.
Výhody používania kolekcií v Kotlin:
- Bezpečnosť: Nemenné kolekcie pomáhajú vyhnúť sa nepredvídaným zmenám.
- Rozšírenia: Kotlin poskytuje množstvo užitočných rozširujúcich funkcií na prácu s kolekciami (
filter,map,forEacha pod.). - Interoperabilita: Jednoduchá práca s existujúcim Java kódom používajúcim kolekcie z Java Collection Framework.