Kotlin Academy · Oppitunti

Kokoelmien iterointi ja muuntaminen standardikirjastolla

Käyttäkää map-, filter-, any-, all- ja count-funktioita käytännön kokoelmaesimerkeissä.

Oppitunti 4/413 vaihetta

Kokoelmien iterointi ja muuntaminen standardikirjastolla on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. 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 Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

Kokoelmat käsittelyputkina

Kotlinin standardikirjasto muuntaa kokoelmia ketjutettujen toimintojen avulla. Jokainen funktio palauttaa uuden kokoelman — alkuperäinen säilyy muuttumattomana.

map: yksi yhteen -muunnos

map soveltaa funktiota jokaiseen alkioon ja palauttaa tuloksista koostuvan listan.
val prices = listOf(10, 20, 30)
val withTax = prices.map { it * 1.1 }
println(withTax)  // [11.0, 22.0, 33.0]

flatMap: yksi moneen

flatMap muuntaa jokaisen alkion listaksi ja litistää sitten kaikki listat yhdeksi listaksi.
val sentences = listOf("hello world", "foo bar")
val words = sentences.flatMap { it.split(" ") }
println(words)  // [hello, world, foo, bar]

filter ja filterNot

filter säilyttää predikaatin täyttävät alkiot; filterNot säilyttää alkiot, jotka eivät täytä sitä.
val nums = (1..10).toList()
val evens = nums.filter { it % 2 == 0 }
val odds = nums.filterNot { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8, 10]

groupBy: ryhmittely avaimen mukaan

groupBy palauttaa muodon Map> olevan mapin, jossa alkiot on ryhmitelty avainfunktion perusteella.
val words = listOf("one", "two", "three", "four", "five")
val byLength = words.groupBy { it.length }
println(byLength)
// {3=[one, two], 5=[three], 4=[four, five]}

associate ja associateBy

associate muodostaa Mapin avain-arvo-parin palauttavan lambdan avulla. associateBy käyttää avaimen poimijaa.
val items = listOf("apple", "banana", "cherry")
val byFirst = items.associateBy { it.first() }
println(byFirst)  // {a=apple, b=banana, c=cherry}

partition: jako kahteen

partition jakaa kokoelman kahdeksi listaksi: ehdon täyttävät ja ehdon täyttämättä jättävät alkiot.
val (evens, odds) = (1..8).partition { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8]
println(odds)   // [1, 3, 5, 7]

distinct ja distinctBy

distinct poistaa päällekkäiset alkiot. distinctBy poistaa päällekkäisyydet avaimen perusteella.
val nums = listOf(1, 2, 2, 3, 1, 4)
println(nums.distinct())  // [1, 2, 3, 4]
val words = listOf("Hi", "hello", "HI")
println(words.distinctBy { it.lowercase() })

take, drop ja chunked

take ottaa ensimmäiset N alkiota; drop ohittaa ensimmäiset N alkiota; chunked jakaa alkiot N-kokoisiin alilistoihin.
val list = (1..10).toList()
println(list.take(3))    // [1, 2, 3]
println(list.drop(7))    // [8, 9, 10]
println(list.chunked(3)) // [[1,2,3],[4,5,6],[7,8,9],[10]]

zip: kahden kokoelman yhdistäminen pareiksi

zip yhdistää kaksi listaa parien listaksi. Se lopettaa lyhyemmän listan lopussa.
val names = listOf("Alice", "Bob", "Charlie")
val scores = listOf(90, 85, 92)
val combined = names.zip(scores)
println(combined)  // [(Alice, 90), (Bob, 85), (Charlie, 92)]

sumOf, minOf, maxOf, averageOf

Koostamisen pikanäppäimiä, jotka käyttävät muunnosfunktioita.
val items = listOf("apple", "banana", "cherry")
println(items.sumOf { it.length })    // 18
println(items.maxOf { it.length })    // 6
println(items.minOf { it.length })    // 5

Pikatarkistus

Millä funktiolla kokoelma ryhmitellään Map>-muotoon avainvalitsimen perusteella?

Kertaus

map, flatMap, filter, groupBy, associate, partition, distinct ja zip — kokoelmien muunnosten keskeinen työkalupakki. Ketjuttakaa ne ilmaisuvoimaisiksi käsittelyputkiksi. Seuraavaksi: luokat ja konstruktorit!
Aloita maksutta

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
51
Oppitunnit
203

Usein kysytyt kysymykset

Onko oppitunti ”Kokoelmien iterointi ja muuntaminen standardikirjastolla” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Kokoelmien iterointi ja muuntaminen standardikirjastolla”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kokoelmien iterointi ja muuntaminen standardikirjastolla”?

Käyttäkää map-, filter-, any-, all- ja count-funktioita käytännön kokoelmaesimerkeissä. Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Kokoelmien iterointi ja muuntaminen standardikirjastolla”-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ä Kotlin Academy-oppitunnilla?

Kyllä. Jokainen Kotlin 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

  1. listOf, setOf, mapOf: vain luku -kokoelmat
  2. mutableListOf, mutableMapOf: muokattavat rakentajat
  3. Alkioiden käyttö: get, first, last, getOrNull
  4. Kokoelmien iterointi ja muuntaminen standardikirjastolla
← Takaisin: Kotlin Academy