List va MutableList, indeks va xavfsiz olish, Set (takrorlanmas), Map (kalit–qiymat)
9-sinfAndroid dasturlash6-hafta · 16-darsTartiblangan ro'yxat
Takrorlanmas to'plam
Kalit va qiymat
Kotlinda sinfdan obyekt qanday yaratiladi?
new kalit so'zi yo'q.Tartiblangan ro'yxat
val people = listOf("Tom", "Sam", "Kate")
println(people[0]) // Tom
println(people.getOrNull(10)) // null
val tasks = mutableListOf("Kod yozish", "Test")
tasks.add("Deploy")
tasks.removeAt(1)
println(tasks) // [Kod yozish, Deploy]
people[10] dasturni to'xtatadi (IndexOutOfBounds), getOrNull(10) esa null qaytaradi. Foydalanuvchi kiritgan indeks bilan doim xavfsiz usulni ishlating.listOf(1, 2, 3) ga add(4) yozilsa nima bo'ladi?
listOf — o'zgarmas; add uchun mutableListOf kerak.Takrorlanmas to'plam
val tags = mutableSetOf("kotlin", "android")
println(tags.add("kotlin")) // false: allaqachon bor
println(tags.add("compose")) // true
println(tags.size) // 3
println("android" in tags) // true
val unique = listOf(1, 2, 2, 3, 3).toSet()
println(unique) // [1, 2, 3]
set[0] deb bo'lmaydi. Tartib kerak bo'lsa, toList() bilan ro'yxatga aylantiring.mutableSetOf("a", "b") ga add("a") yozilsa nima qaytadi?
false qaytaradi.Kalit va qiymat
val prices = mutableMapOf("Laptop" to 1200.0, "Phone" to 800.0)
prices["Phone"] = 750.0
println(prices["Tablet"]) // null
println(prices.getOrDefault("Tablet", 0.0)) // 0.0
println(prices.containsKey("Laptop")) // true
for ((name, price) in prices) println("$name: $price")
map[kalit] null qaytaradi. Natijani ishlatishdan oldin ?: (Elvis) yoki getOrDefault bilan standart qiymat bering.mapOf da bir xil kalit ikki marta yozilsa nima bo'ladi?
contains tezTakror kerak bo'lmasa — Set.
Ko'p qiymatni saqlovchi tuzilma
Elementning tartib raqami (0 dan)
O'zgartirib bo'lmaydigan
Kalit va unga mos qiymat
Tartib va takror.
Faqat noyob.
Kalit bo'yicha topish.
| Tur | Tartib/indeks | Takror | Misol |
|---|---|---|---|
List | Ha, indeks bor | Mumkin | O'quvchilar ro'yxati |
Set | Indeks yo'q | Mumkin emas | Teglar to'plami |
Map | Kalit bo'yicha | Kalit noyob | Mahsulot → narx |
Pastga bosing: tur tanlash
mutableListOf bilan 3 ta mahsulot yarating, 1 tasini qo'shing va 1 tasini o'chiring.mutableMapOf bilan mahsulot → narx lug'atini yarating va bir narxni yangilang.for ((nom, narx) in map) bilan hisobot chiqaring.
val a = listOf(1, 2)
a.add(3)
val a = mutableListOf(1, 2)
a.add(3)
To'g'ri kolleksiya — qisqa va xavfsiz kod.
mutableListOf ga yangi mahsulot qo'shing va ro'yxatni chiqaring.listOf(1, 2, 2, 3, 3) dan takrorsiz to'plam oling.Tartib, indeks, getOrNull.
Takrorlanmas to'plam.
Kalit–qiymat, getOrDefault.
Uyga vazifa: Kolleksiyalar bilan «Omborxona» dasturi.
Kolleksiyalarni filtrlash
6-hafta · 17-dars