Junior
Koje tipove kolekcija podržava Kotlin?
sobes.tech АИ
Одговор од АИ
Kotlin podržava standardne tipove kolekcija iz Java Collection Framework, kao i pruža svoje zgodne proširenja i interfejse.
Glavni interfejsi kolekcija u Kotlin:
Collection<out E>: Osnovni interfejs za nepromenljive kolekcije.MutableCollection<E>: Interfejs za promenljive kolekcije.List<out E>: Interfejs za nepromenljive kolekcije sa uređenim pristupom po indeksu.MutableList<E>: Interfejs za promenljive kolekcije sa uređenim pristupom po indeksu.Set<out E>: Interfejs za nepromenljive kolekcije jedinstvenih elemenata bez određenog reda.MutableSet<E>: Interfejs za promenljive kolekcije jedinstvenih elemenata bez određenog reda.Map<K, out V>: Interfejs za nepromenljive kolekcije parova "ključ-vrednost".MutableMap<K, V>: Interfejs za promenljive kolekcije parova "ključ-vrednost".
Glavne implementacije kolekcija u standardnoj biblioteci Kotlin (često korišćene funkcije-graditelji):
ArrayList: Promenljiva lista zasnovana na nizu.LinkedList: Promenljiva lista zasnovana na povezanoj listi.HashSet: Promenljivo skupo, zasnovano na hash tabeli.LinkedHashSet: Promenljivo skupo, zasnovano na hash tabeli i povezanoj listi (čuva red dodavanja).HashMap: Promenljiva mapa zasnovana na hash tabeli.LinkedHashMap: Promenljiva mapa zasnovana na hash tabeli i povezanoj listi (čuva red dodavanja).
Primeri kreiranja kolekcija:
// Nepromenljiva lista
val immutableList = listOf("a", "b", "c")
// Promenljiva lista
val mutableList = mutableListOf(1, 2, 3)
// Nepromenljivo skupo
val immutableSet = setOf("apple", "banana")
// Promenljivo skupo
val mutableSet = mutableSetOf(10, 20, 30)
// Nepromenljiva mapa
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// Promenljiva mapa
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
Ključna razlika između promenljivih (Mutable*) i nepromenljivih (*) verzija je u tome što promenljive kolekcije pružaju metode za dodavanje, uklanjanje i promenu elemenata, dok nepromenljive kolekcije to ne čine. Funkcije-graditelji listOf, setOf, mapOf kreiraju nepromenljive kolekcije, a mutableListOf, mutableSetOf, mutableMapOf su promenljive.
Prednosti korišćenja kolekcija u Kotlinu:
- Bezbednost: Nepromenljive kolekcije pomažu da se izbegnu nepredviđene promene.
- Proširenja: Kotlin pruža mnogo korisnih proširenih funkcija za rad sa kolekcijama (
filter,map,forEachi dr.). - Interoperabilnost: Lako raditi sa postojećim Java kodom koji koristi kolekcije iz Java Collection Frameworka.