НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
412 of 1310 menu

Функция flatten

Функция flatten преобразует коллекцию, содержащую другие коллекции, в единую плоскую коллекцию. Она объединяет все элементы вложенных коллекций в один общий список. Функция применяется к коллекциям типа Iterable>, Array>, List> и Set>. Для Map функция flatten не работает напрямую.

Синтаксис

fun <T> Iterable<Iterable<T>>.flatten(): List<T>
fun <T> Array<out Array<out T>>.flatten(): List<T>

Пример

Преобразуем список списков в плоский список:

val nestedList = listOf( listOf(1, 2, 3), listOf(4, 5), listOf(6, 7, 8, 9) ) val res = nestedList.flatten() println(res)

Результат выполнения кода:

List<Int> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Пример

Преобразуем массив массивов в плоский список:

val nestedArray = arrayOf( arrayOf('a', 'b', 'c'), arrayOf('d', 'e'), arrayOf('f', 'g', 'h') ) val res = nestedArray.flatten() println(res)

Результат выполнения кода:

List<Char> ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

Пример

Преобразуем множество множеств в плоский список:

val nestedSet = setOf( setOf("apple", "banana"), setOf("cherry", "date"), setOf("elderberry", "fig") ) val res = nestedSet.flatten() println(res)

Результат выполнения кода:

List<String> ["apple", "banana", "cherry", "date", "elderberry", "fig"]

Пример

Для Map функция flatten не работает напрямую. Сначала нужно преобразовать карту в коллекцию пар ключ-значение:

val map = mapOf( "first" to listOf(1, 2, 3), "second" to listOf(4, 5), "third" to listOf(6, 7, 8) ) val res = map.values.flatten() println(res)

Результат выполнения кода:

List<Int> [1, 2, 3, 4, 5, 6, 7, 8]

Смотрите также

  • функцию flatMap,
    которая сначала преобразует элементы, а затем flatten
  • функцию union,
    которая объединяет несколько коллекций в одну
  • функцию plus,
    которая объединяет две коллекции
  • функцию addAll,
    которая добавляет все элементы коллекции в изменяемую коллекцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить