Kotlin Academy · leksjon

Iterere over og transformere samlinger med standardbiblioteket

Bruk map, filter, any, all og count med praktiske eksempler på samlinger.

Leksjon 4 av 413 trinn

Iterere over og transformere samlinger med standardbiblioteket er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Samlinger som rørledninger

Kotlin-standardbiblioteket transformer samlinger gjennom kjedede operasjoner. Hver funksjon returnerer en ny samling – den opprinnelige berøres ikke.

map: én-til-én-transformasjon

map bruker en funksjon på hvert element og returnerer en liste med resultater.
val prices = listOf(10, 20, 30)
val withTax = prices.map { it * 1.1 }
println(withTax)  // [11.0, 22.0, 33.0]

flatMap: én-til-mange

flatMap mapper hvert element til en liste og flater deretter ut alle listene til én.
val sentences = listOf("hello world", "foo bar")
val words = sentences.flatMap { it.split(" ") }
println(words)  // [hello, world, foo, bar]

filter og filterNot

filter beholder elementer som samsvarer med predikatet. filterNot beholder elementer som ikke gjør det.
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: grupper etter nøkkel

groupBy returnerer et Map> der elementene grupperes etter nøkkelfunksjonen.
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 og associateBy

associate bygger et Map med en lambda som returnerer et nøkkel-verdi-par. associateBy bruker en nøkkeluttrekker.
val items = listOf("apple", "banana", "cherry")
val byFirst = items.associateBy { it.first() }
println(byFirst)  // {a=apple, b=banana, c=cherry}

partition: dele i to

partition deler en samling i to lister: elementer som samsvarer, og elementer som ikke samsvarer.
val (evens, odds) = (1..8).partition { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8]
println(odds)   // [1, 3, 5, 7]

distinct og distinctBy

distinct fjerner duplikatelementer. distinctBy fjerner duplikater basert på en nøkkel.
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 og chunked

take tar de første N elementene. drop hopper over de første N. chunked deler opp i underlister med størrelse N.
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: sette sammen to samlinger

zip kombinerer to lister til en liste med par. Den stopper ved den korteste listen.
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

Snarveier for aggregering ved hjelp av transformasjonsfunksjoner.
val items = listOf("apple", "banana", "cherry")
println(items.sumOf { it.length })    // 18
println(items.maxOf { it.length })    // 6
println(items.minOf { it.length })    // 5

Hurtigsjekk

Hvilken funksjon grupperer en samling i et Map> ved hjelp av en nøkkelvelger?

Oppsummering

map, flatMap, filter, groupBy, associate, partition, distinct og zip – det grunnleggende verktøysettet for transformasjon av samlinger. Kjed dem sammen til uttrykksfulle rørledninger. Neste: klasser og konstruktører!
Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Iterere over og transformere samlinger med standardbiblioteket» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «Iterere over og transformere samlinger med standardbiblioteket», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Iterere over og transformere samlinger med standardbiblioteket»?

Bruk map, filter, any, all og count med praktiske eksempler på samlinger. Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Kotlin Academy?

Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Iterere over og transformere samlinger med standardbiblioteket»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?

Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. listOf, setOf, mapOf: Skrivebeskyttede samlinger
  2. mutableListOf, mutableMapOf: Bygging av mutable samlinger
  3. Aksessere elementer: get, first, last, getOrNull
  4. Iterere over og transformere samlinger med standardbiblioteket
← Tilbake til Kotlin Academy