Android Academy · Lektion

Kotlin-samlingar

Arbeta med List, Set och Map. Använd funktionella operatorer som filter, map, sortedBy, forEach, find, any och all, och kedja operationer för kortfattade datatransformationer.

Lektion 1 av 611 steg

Kotlin-samlingar är en gratis lektion i Android Academy på CoddyKit. Detta är lektion 1 av 6. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Android Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Android Academy innehåller totalt 6 lektioner.

Översikt över samlingar

Kotlins standardbibliotek tillhandahåller tre huvudtyper av samlingar:

  • List — ordnad sekvens av element (kan innehålla dubbletter)
  • Set — unika element, utan någon specifik ordning
  • Map — nyckel-värde-par, där nycklarna är unika

Varje typ har en immutable-variant (skrivskyddad) och en mutable-variant (kan ändras).

Listor: listOf jämfört med mutableListOf

Skapa listor med fabriksfunktioner:

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: nyckel-värde-par

Använd mapOf och mutableMapOf för att skapa mappar. Hämta värden med hjälp av nyckeln:

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 — välj element

filter returnerar en ny lista som endast innehåller element som uppfyller ett villkor:

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 — omvandla element

map omvandlar varje element och returnerar en ny lista:

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 och sortedByDescending

Sortera en lista efter en egenskap:

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 och find

Två andra användbara samlingsfunktioner:

  • forEach — itererar utan att skapa ett resultat
  • find — returnerar det första elementet som uppfyller ett villkor, eller null

Kedja operationer

Växla ihop flera operationer för kortfattade datatransformeringar:

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 och count

Aggregatfunktioner för snabba svar:

  • any { condition } — true om minst ett element matchar
  • all { condition } — true om alla element matchar
  • count { condition } — antal element som matchar
  • sumOf { it.price } — summan av en numerisk egenskap

Snabb kontroll

Vilken funktion använder Ni för att endast hämta de element i en lista som uppfyller ett villkor?

Sammanfattning: Kotlin-samlingar

Nu kan Ni arbeta effektivt med data i Kotlin:

  • listOf / mutableListOf, mapOf / mutableMapOf
  • filter — välj element som matchar
  • map — omvandla element
  • sortedBy / sortedByDescending
  • Kedja operationer för tydliga och lättlästa datapipelines

Nästa steg: visa listor på skärmen med RecyclerView.

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
36
Lektioner
152

Vanliga frågor

Är lektionen ”Kotlin-samlingar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Android Academy, inklusive ”Kotlin-samlingar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Android Academy innehåller totalt 6 lektioner.

Vad lär jag mig i ”Kotlin-samlingar”?

Arbeta med List, Set och Map. Använd funktionella operatorer som filter, map, sortedBy, forEach, find, any och all, och kedja operationer för kortfattade datatransformationer. Ni övar på Android Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Android Academy?

Du behöver inga förkunskaper. Utbildningen i Android Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 6.

Hur lång tid tar lektionen ”Kotlin-samlingar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Android Academy-lektionen?

Ja. Varje Android Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Kotlin-samlingar
  2. Grunderna i RecyclerView
  3. Klickhändelser i RecyclerView
  4. SharedPreferences
  5. DataStore Preferences
  6. Adaptrar och DiffUtil
← Tillbaka till Android Academy