0Pricing
Kotlin Academy · Урок

Перебор и преобразование коллекций со стандартной библиотекой

Используйте map, filter, any, all и count на практических примерах с коллекциями.

«Перебор и преобразование коллекций со стандартной библиотекой» — бесплатный урок Kotlin Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Academy содержит 4 уроков всего.

Коллекции как цепочки преобразований

Стандартная библиотека Kotlin преобразует коллекции с помощью связанных операций. Каждая функция возвращает новую коллекцию, а исходная остаётся без изменений.

Преобразование map: один к одному

map применяет функцию к каждому элементу и возвращает список результатов.
val prices = listOf(10, 20, 30)
val withTax = prices.map { it * 1.1 }
println(withTax)  // [11.0, 22.0, 33.0]

flatMap: один ко многим

flatMap преобразует каждый элемент в список, а затем объединяет все списки в один.
val sentences = listOf("hello world", "foo bar")
val words = sentences.flatMap { it.split(" ") }
println(words)  // [hello, world, foo, bar]

filter и filterNot

filter оставляет элементы, соответствующие условию; filterNot оставляет те, которые ему не соответствуют.
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: группировка по ключу

groupBy возвращает Map>, где элементы сгруппированы по функции определения ключа.
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 и associateBy

associate создаёт отображение с помощью лямбды, возвращающей пару ключ–значение. associateBy использует функцию извлечения ключа.
val items = listOf("apple", "banana", "cherry")
val byFirst = items.associateBy { it.first() }
println(byFirst)  // {a=apple, b=banana, c=cherry}

partition: разделение на две части

partition разделяет коллекцию на два списка: с подходящими и неподходящими элементами.
val (evens, odds) = (1..8).partition { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8]
println(odds)   // [1, 3, 5, 7]

distinct и distinctBy

distinct удаляет дублирующиеся элементы. distinctBy удаляет дубли на основе ключа.
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 и chunked

take берёт первые N элементов; drop пропускает первые N; chunked разделяет коллекцию на подсписки размера 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: объединение двух коллекций в пары

zip объединяет два списка в список пар. Операция останавливается на более коротком списке.
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

Сокращённые операции агрегации с использованием функций преобразования.
val items = listOf("apple", "banana", "cherry")
println(items.sumOf { it.length })    // 18
println(items.maxOf { it.length })    // 6
println(items.minOf { it.length })    // 5

Быстрая проверка

Какая функция группирует коллекцию в Map> по селектору ключа?

Повторение

map, flatMap, filter, groupBy, associate, partition, distinct и zip — основной набор инструментов для преобразования коллекций. Объединяйте их в выразительные цепочки преобразований. Далее: классы и конструкторы!

Часто задаваемые вопросы

Урок «Перебор и преобразование коллекций со стандартной библиотекой» бесплатный?

Да — полный текст урока «Перебор и преобразование коллекций со стандартной библиотекой» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Academy, подпишись на CoddyKit PRO. Курс Kotlin Academy содержит 4 уроков всего.

Чему я научусь в уроке «Перебор и преобразование коллекций со стандартной библиотекой»?

Используйте map, filter, any, all и count на практических примерах с коллекциями. Ты практикуешь Kotlin Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Kotlin Academy?

Предыдущий опыт не требуется. Kotlin Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Перебор и преобразование коллекций со стандартной библиотекой»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Kotlin Academy?

Да. Каждый урок Kotlin Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. listOf, setOf, mapOf: доступные только для чтения коллекции
  2. mutableListOf, mutableMapOf: изменяемые построители
  3. Доступ к элементам: get, first, last, getOrNull
  4. Перебор и преобразование коллекций со стандартной библиотекой
← Назад к Kotlin Academy