Kolekcje w Kotlinie
Proszę pracować z typami List, Set i Map. Proszę używać operatorów funkcyjnych, takich jak filter, map, sortedBy, forEach, find, any i all, oraz łączyć operacje w celu zwięzłego przekształcania danych.
Kolekcje w Kotlinie to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 1 z 6. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 6 lekcji w sumie.
Przegląd kolekcji
Biblioteka standardowa Kotlin udostępnia trzy główne typy kolekcji:
- List — uporządkowana sekwencja elementów (może zawierać duplikaty)
- Set — unikatowe elementy, bez określonej kolejności
- Map — pary klucz-wartość, klucze są unikatowe
Każdy typ ma wersję niemodyfikowalną (tylko do odczytu) oraz modyfikowalną (można ją zmieniać).
Listy: listOf a mutableListOf
Twórz listy za pomocą funkcji fabrykujących:
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: pary klucz-wartość
Użyj funkcji mapOf i mutableMapOf, aby utworzyć mapy. Uzyskuj dostęp do wartości za pomocą klucza:
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 — wybieranie elementów
filter zwraca nową listę zawierającą tylko elementy spełniające warunek:
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 — przekształcanie elementów
map przekształca każdy element i zwraca nową listę:
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 i sortedByDescending
Sortuj listę według właściwości:
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 i find
Dwie kolejne przydatne funkcje kolekcji:
forEach— iteruje po elementach bez tworzenia wynikufind— zwraca pierwszy element spełniający warunek lub wartość null
Łączenie operacji
Łącz wiele operacji, aby zwięźle przekształcać dane:
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, count
Funkcje agregujące do szybkiego uzyskiwania wyników:
any { condition }— true, jeśli co najmniej jeden element spełnia warunekall { condition }— true, jeśli każdy element spełnia warunekcount { condition }— liczba elementów spełniających waruneksumOf { it.price }— suma wartości właściwości liczbowej
Szybkie sprawdzenie
Której funkcji użyjesz, aby uzyskać tylko te elementy listy, które spełniają warunek?
Podsumowanie: kolekcje Kotlin
Potrafisz teraz wydajnie pracować z danymi w Kotlinie:
listOf/mutableListOf,mapOf/mutableMapOffilter— wybieranie pasujących elementówmap— przekształcanie elementówsortedBy/sortedByDescending- Łączenie operacji w przejrzyste i czytelne potoki przetwarzania danych
Dalej: wyświetlanie list na ekranie za pomocą RecyclerView.
Często zadawane pytania
Czy lekcja „Kolekcje w Kotlinie” jest bezpłatna?
Tak — pełny tekst „Kolekcje w Kotlinie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 6 lekcji w sumie.
Co nauczysz się w „Kolekcje w Kotlinie”?
Proszę pracować z typami List, Set i Map. Proszę używać operatorów funkcyjnych, takich jak filter, map, sortedBy, forEach, find, any i all, oraz łączyć operacje w celu zwięzłego przekształcania danyc… Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 6.
Ile czasu zajmuje lekcja „Kolekcje w Kotlinie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Kolekcje w Kotlinie
- Podstawy RecyclerView
- Obsługa kliknięć w RecyclerView
- SharedPreferences
- Preferencje DataStore
- Adaptery i DiffUtil