Kotlinin kokoelmat
Käsitelkää List-, Set- ja Map-kokoelmia. Käyttäkää funktionaalisia operaattoreita, kuten filter, map, sortedBy, forEach, find, any ja all, sekä ketjuttakaa toimintoja tiiviisiin datamuunnoksiin.
Kotlinin kokoelmat on ilmainen Android Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/6. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Android Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Android Academy-kurssilla on yhteensä 6 oppituntia.
Kokoelmien yleiskatsaus
Kotlinin standardikirjasto tarjoaa kolme pääasiallista kokoelmatyyppiä:
- List — järjestetty alkioiden jono (voi sisältää kaksoiskappaleita)
- Set — yksilölliset alkiot, ei tiettyä järjestystä
- Map — avain–arvo-parit, avaimet ovat yksilöllisiä
Jokaisesta tyypistä on muuttumaton versio (vain luku) ja muuttuva versio (voidaan muokata).
Listat: listOf ja mutableListOf
Luokaa listoja tehdasfunktioilla:
fun main() {
// Immutable — cannot add/remove items
val fruits = listOf("Apple", "Banana", "Cherry")
println(fruits[0]) // Apple
println(fruits.size) // 3
// Mutable — can modify
val scores = mutableListOf(10, 20, 30)
scores.add(40)
scores.removeAt(0) // remove index 0
println(scores) // [20, 30, 40]
}Map: avain–arvo-parit
Luokaa Map-rakenteita funktioilla mapOf ja mutableMapOf. Käyttäkää arvoja avaimen avulla:
fun main() {
val capitals = mapOf(
"Turkey" to "Ankara",
"Germany" to "Berlin",
"Japan" to "Tokyo"
)
println(capitals["Turkey"]) // Ankara
println(capitals["France"]) // null (not found)
println(capitals.getOrDefault("France", "Unknown")) // Unknown
// Iterate
for ((country, city) in capitals) {
println("$country -> $city")
}
}filter — alkioiden valitseminen
filter palauttaa uuden listan, joka sisältää vain ehdon täyttävät alkiot:
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)
val evens = numbers.filter { it % 2 == 0 }
println(evens) // [2, 4, 6, 8]
val names = listOf("Alice", "Bob", "Anna", "Charlie")
val aNames = names.filter { it.startsWith("A") }
println(aNames) // [Alice, Anna]
}map — alkioiden muuntaminen
map muuntaa jokaisen alkion ja palauttaa uuden listan:
fun main() {
val prices = listOf(10.0, 20.0, 30.0)
// Apply 10% tax
val withTax = prices.map { it * 1.1 }
println(withTax) // [11.0, 22.0, 33.0]
val names = listOf("alice", "bob", "carol")
val upper = names.map { it.uppercase() }
println(upper) // [ALICE, BOB, CAROL]
}sortedBy ja sortedByDescending
Järjestäkää lista ominaisuuden perusteella:
data class Student(val name: String, val grade: Int)
fun main() {
val students = listOf(
Student("Alice", 88),
Student("Bob", 95),
Student("Carol", 72)
)
val byGrade = students.sortedByDescending { it.grade }
for (s in byGrade) println("${s.name}: ${s.grade}")
// Bob: 95
// Alice: 88
// Carol: 72
}forEach ja find
Kaksi muuta hyödyllistä kokoelmatoimintoa:
forEach— käy alkiot läpi muodostamatta tulostafind— palauttaa ensimmäisen ehdon täyttävän alkion tai arvon null
Toimintojen ketjuttaminen
Ketjuttakaa useita toimintoja tietojen tiiviitä muunnoksia varten:
data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
val products = listOf(
Product("Laptop", 999.0, true),
Product("Mouse", 29.0, false),
Product("Keyboard", 79.0, true),
Product("Monitor", 349.0, true)
)
// In-stock products under $500, sorted by price
val result = products
.filter { it.inStock && it.price < 500 }
.sortedBy { it.price }
.map { "${it.name}: ${it.price}" }
result.forEach { println(it) }
}any, all ja count
Koostefunktioita nopeiden vastausten saamiseen:
any { condition }— true, jos vähintään yksi alkio täyttää ehdonall { condition }— true, jos jokainen alkio täyttää ehdoncount { condition }— ehdon täyttävien alkioiden määräsumOf { it.price }— numeerisen ominaisuuden summa
Pikatarkistus
Mitä funktiota käyttäisitte saadaksenne listasta vain ehdon täyttävät alkiot?
Kertaus: Kotlinin kokoelmat
Osaatte nyt käsitellä tietoja Kotlinissa tehokkaasti:
listOf/mutableListOf,mapOf/mutableMapOffilter— valitsee ehdon täyttävät alkiotmap— muuntaa alkiotsortedBy/sortedByDescending- Ketjuttakaa toimintoja selkeiksi ja helposti luettaviksi tietoputkiksi
Seuraavaksi: näyttäkää listoja näytöllä RecyclerView-komponentilla.
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 36
- Oppitunnit
- 152
Usein kysytyt kysymykset
Onko oppitunti ”Kotlinin kokoelmat” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Android Academy-oppimispolun 3 oppituntia, myös oppitunnin “Kotlinin kokoelmat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Android Academy-kurssilla on yhteensä 6 oppituntia.
Mitä opin oppitunnilla ”Kotlinin kokoelmat”?
Käsitelkää List-, Set- ja Map-kokoelmia. Käyttäkää funktionaalisia operaattoreita, kuten filter, map, sortedBy, forEach, find, any ja all, sekä ketjuttakaa toimintoja tiiviisiin datamuunnoksiin. Harjoittelet Android Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Android Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Android Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/6.
Kuinka kauan ”Kotlinin kokoelmat”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Android Academy-oppitunnilla?
Kyllä. Jokainen Android Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kotlinin kokoelmat
- RecyclerViewn perusteet
- RecyclerView'n napsautustapahtumat
- SharedPreferences
- DataStore Preferences
- Adapterit ja DiffUtil