Kotlin qanday to'plam turlarini qo'llab-quvvatlaydi?
sobes.tech AI
AIdan javob
Kotlin Java Collection Framework ning standart kolleksiya turlarini qo'llab-quvvatlaydi, shuningdek, o'zining qulay kengaytmalar va interfeyslarini taqdim etadi.
Kotlin'dagi asosiy kolleksiya interfeyslari:
Collection<out E>: O'zgarmas kolleksiya uchun asosiy interfeys.MutableCollection<E>: O'zgartiriladigan kolleksiya uchun interfeys.List<out E>: Indeks bo'yicha tartiblangan, o'zgarmas kolleksiya uchun interfeys.MutableList<E>: Indeks bo'yicha tartiblangan, o'zgartiriladigan kolleksiya uchun interfeys.Set<out E>: Aniq tartibga ega bo'lmagan, takrorlanmaydigan elementlar kolleksiyasi uchun interfeys.MutableSet<E>: Aniq tartibga ega bo'lmagan, takrorlanmaydigan elementlar kolleksiyasi uchun o'zgartiriladigan interfeys.Map<K, out V>: O'zgarmas juftliklar "kalit-qiymat" kolleksiyasi uchun interfeys.MutableMap<K, V>: O'zgartiriladigan juftliklar "kalit-qiymat" kolleksiyasi uchun interfeys.
Kotlin standart kutubxonasida kolleksiyalarning asosiy amalga oshirilishi (ko'pincha quruvchi funksiyalar bilan ishlatiladi):
ArrayList: Array asosida o'zgartiriladigan ro'yxat.LinkedList: Bog'langan ro'yxat asosida o'zgartiriladigan ro'yxat.HashSet: Hash jadvali asosida o'zgartiriladigan to'plam.LinkedHashSet: Hash jadvali va bog'langan ro'yxat asosida o'zgartiriladigan to'plam (kiritish tartibini saqlaydi).HashMap: Hash jadvali asosida o'zgartiriladigan xarita.LinkedHashMap: Hash jadvali va bog'langan ro'yxat asosida o'zgartiriladigan xarita (kiritish tartibini saqlaydi).
Kolleksiyalarni yaratish misollari:
// O'zgarmas ro'yxat
val immutableList = listOf("a", "b", "c")
// O'zgartiriladigan ro'yxat
val mutableList = mutableListOf(1, 2, 3)
// O'zgarmas to'plam
val immutableSet = setOf("apple", "banana")
// O'zgartiriladigan to'plam
val mutableSet = mutableSetOf(10, 20, 30)
// O'zgarmas xarita
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// O'zgartiriladigan xarita
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
Asosiy farq o'zgartiriladigan (Mutable*) va o'zgartirilmaydigan (*) versiyalar orasida shundaki, o'zgartiriladigan kolleksiyalar elementlarni qo'shish, o'chirish va o'zgartirish uchun metodlar taqdim etadi, o'zgartirilmaydigan kolleksiyalar esa bunday imkoniyatlarni bermaydi. Quruvchi funksiyalar listOf, setOf, mapOf o'zgartirilmaydigan kolleksiyalarni yaratadi, mutableListOf, mutableSetOf, mutableMapOf esa o'zgartiriladiganlarini.
Kotlin'da kolleksiyalardan foydalanishning afzalliklari:
- Xavfsizlik: O'zgartirilmaydigan kolleksiyalar odatda kutilmagan o'zgarishlarni oldini oladi.
- Kengaytmalar: Kotlin kolleksiyalar bilan ishlash uchun ko'plab foydali kengaytirish funksiyalarini taqdim etadi (
filter,map,forEachva boshqalar). - Interoperabilitet: Mavjud Java kod bilan ishlash juda oson, Java Collection Framework kolleksiyalaridan foydalanadi.