Junior
Jaké typy kolekcí podporuje Kotlin?
sobes.tech AI
Odpověď od AI
Kotlin podporuje standardní typy kolekcí z Java Collection Framework a také poskytuje své pohodlné rozšíření a rozhraní.
Hlavní rozhraní kolekcí v Kotlin:
Collection<out E>: Základní rozhraní pro neměnitelné kolekce.MutableCollection<E>: Rozhraní pro měnitelné kolekce.List<out E>: Rozhraní pro neměnitelné kolekce s uspořádaným přístupem podle indexu.MutableList<E>: Rozhraní pro měnitelné kolekce s uspořádaným přístupem podle indexu.Set<out E>: Rozhraní pro neměnitelné kolekce unikátních prvků bez určitého pořadí.MutableSet<E>: Rozhraní pro měnitelné kolekce unikátních prvků bez určitého pořadí.Map<K, out V>: Rozhraní pro neměnitelné kolekce párů "klíč-hodnota".MutableMap<K, V>: Rozhraní pro měnitelné kolekce párů "klíč-hodnota".
Hlavní implementace kolekcí v standardní knihovně Kotlin (často používané konstrukční funkce):
ArrayList: Měnitelný seznam založený na poli.LinkedList: Měnitelný seznam založený na spojovaném seznamu.HashSet: Měnitelná množina založená na hash tabulce.LinkedHashSet: Měnitelná množina založená na hash tabulce a spojovaném seznamu (uchovává pořadí přidání).HashMap: Měnitelná mapa založená na hash tabulce.LinkedHashMap: Měnitelná mapa založená na hash tabulce a spojovaném seznamu (uchovává pořadí přidání).
Příklady vytváření kolekcí:
// Neměnitelný seznam
val immutableList = listOf("a", "b", "c")
// Měnitelný seznam
val mutableList = mutableListOf(1, 2, 3)
// Neměnitelná množina
val immutableSet = setOf("apple", "banana")
// Měnitelná množina
val mutableSet = mutableSetOf(10, 20, 30)
// Neměnitelná mapa
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// Měnitelná mapa
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
Klíčovým rozdílem mezi měnitelnými (Mutable*) a neměnitelnými (*) verzemi je to, že měnitelné kolekce poskytují metody pro přidávání, odstraňování a změnu prvků, zatímco neměnitelné kolekce to nedělají. Konstrukční funkce listOf, setOf, mapOf vytvářejí neměnitelné kolekce, zatímco mutableListOf, mutableSetOf, mutableMapOf jsou měnitelné.
Výhody používání kolekcí v Kotlinu:
- Bezpečnost: Neměnitelné kolekce pomáhají předejít nečekaným změnám.
- Rozšíření: Kotlin nabízí mnoho užitečných rozšiřujících funkcí pro práci s kolekcemi (
filter,map,forEachatd.). - Interoperabilita: Snadná práce s existujícím kódem v Java, který používá kolekce z Java Collection Framework.