0Pricing
Kotlin Academy · Lekcja

Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej

Użyj map, filter, any, all i count na rzeczywistych przykładach kolekcji.

Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 4 z 4. 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 Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Kolekcje jako potoki

Biblioteka standardowa Kotlina przekształca kolekcje za pomocą łańcuchów operacji. Każda funkcja zwraca nową kolekcję — oryginalna pozostaje nietknięta.

map: transformacja jeden do jednego

map stosuje funkcję do każdego elementu i zwraca listę wyników.
val prices = listOf(10, 20, 30)
val withTax = prices.map { it * 1.1 }
println(withTax)  // [11.0, 22.0, 33.0]

flatMap: jeden do wielu

flatMap mapuje każdy element na listę, a następnie spłaszcza wszystkie listy do jednej.
val sentences = listOf("hello world", "foo bar")
val words = sentences.flatMap { it.split(" ") }
println(words)  // [hello, world, foo, bar]

filter i filterNot

filter zachowuje elementy spełniające predykat, a filterNot zachowuje te, które go nie spełniają.
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: grupowanie według klucza

groupBy zwraca obiekt Map>, w którym elementy są pogrupowane według funkcji klucza.
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 i associateBy

associate tworzy obiekt Map za pomocą lambdy zwracającej parę klucz-wartość. associateBy używa funkcji wyodrębniającej klucz.
val items = listOf("apple", "banana", "cherry")
val byFirst = items.associateBy { it.first() }
println(byFirst)  // {a=apple, b=banana, c=cherry}

partition: podział na dwie części

partition dzieli kolekcję na dwie listy: elementów spełniających i niespełniających warunku.
val (evens, odds) = (1..8).partition { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8]
println(odds)   // [1, 3, 5, 7]

distinct i distinctBy

distinct usuwa zduplikowane elementy. distinctBy usuwa duplikaty na podstawie klucza.
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 i chunked

take pobiera pierwszych N elementów, drop pomija pierwszych N, a chunked dzieli kolekcję na podlisty o rozmiarze 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: łączenie dwóch kolekcji w pary

zip łączy dwie listy w listę par. Kończy działanie na końcu krótszej listy.
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

Skróty do agregowania danych za pomocą funkcji transformujących.
val items = listOf("apple", "banana", "cherry")
println(items.sumOf { it.length })    // 18
println(items.maxOf { it.length })    // 6
println(items.minOf { it.length })    // 5

Szybkie sprawdzenie

Która funkcja grupuje kolekcję w obiekt Map> na podstawie selektora klucza?

Podsumowanie

map, flatMap, filter, groupBy, associate, partition, distinct i zip — podstawowy zestaw narzędzi do przekształcania kolekcji. Łącz je w przejrzyste potoki operacji. Następnie: klasy i konstruktory!

Często zadawane pytania

Czy lekcja „Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej” jest bezpłatna?

Tak — pełny tekst „Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej” 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 Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej”?

Użyj map, filter, any, all i count na rzeczywistych przykładach kolekcji. Ćwiczysz Kotlin 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ąć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin 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 4 z 4.

Ile czasu zajmuje lekcja „Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej”?

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 Kotlin Academy?

Tak. Każda lekcja Kotlin 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. listOf, setOf, mapOf: kolekcje tylko do odczytu
  2. mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji
  3. Dostęp do elementów: get, first, last, getOrNull
  4. Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej
← Powrót do Kotlin Academy