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.
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 resultatfind— 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 matcharall { condition }— true om alla element matcharcount { condition }— antal element som matcharsumOf { 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/mutableMapOffilter— välj element som matcharmap— omvandla elementsortedBy/sortedByDescending- Kedja operationer för tydliga och lättlästa datapipelines
Nästa steg: visa listor på skärmen med RecyclerView.
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
- Kotlin-samlingar
- Grunderna i RecyclerView
- Klickhändelser i RecyclerView
- SharedPreferences
- DataStore Preferences
- Adaptrar och DiffUtil