0Pricing
Android Academy · Lekcja

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 wyniku
  • find — 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 warunek
  • all { condition } — true, jeśli każdy element spełnia warunek
  • count { condition } — liczba elementów spełniających warunek
  • sumOf { 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 / mutableMapOf
  • filter — wybieranie pasujących elementów
  • map — przekształcanie elementów
  • sortedBy / 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

  1. Kolekcje w Kotlinie
  2. Podstawy RecyclerView
  3. Obsługa kliknięć w RecyclerView
  4. SharedPreferences
  5. Preferencje DataStore
  6. Adaptery i DiffUtil
← Powrót do Android Academy