Функция buildList

Функция buildList создает новый неизменяемый список типа List с использованием лямбды-билдера. Внутри лямбды доступен mutable builder типа MutableList, который преобразуется в неизменяемый список при возврате результата.

Импорт

kotlinimport kotlin.collections.buildList

Синтаксис

kotlininline fun <E> buildList(
  builderAction: MutableList<E>.() -> Unit
): List<E>
kotlininline fun <E> buildList(
  capacity: Int,
  builderAction: MutableList<E>.() -> Unit
): List<E>

Пример

Создадим список чисел от 1 до 5:

kotlinval numbers: List<Int> = buildList {
  add(1)
  add(2)
  add(3)
  add(4)
  add(5)
}

println(numbers)

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

kotlinList<Int> [1, 2, 3, 4, 5]

Пример

Создадим список символов с начальной емкостью:

kotlinval chars: List<Char> = buildList(10) {
  add('a')
  add('b')
  add('c')
  add('d')
  add('e')
}

println(chars)

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

kotlinList<Char> ['a', 'b', 'c', 'd', 'e']

Пример

Использование условной логики внутри билдера:

kotlinval includeFive = true
val result: List<Int> = buildList {
  add(1)
  add(2)
  add(3)
  add(4)
  
  if (includeFive) {
    add(5)
  }
}

println(result)

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

kotlinList<Int> [1, 2, 3, 4, 5]

Пример

Использование цикла для заполнения списка:

kotlinval squares: List<Int> = buildList {
  for (i in 1..5) {
    add(i * i)
  }
}

println(squares)

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

kotlinList<Int> [1, 4, 9, 16, 25]

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

  • функцию listOf,
    которая создает список из переданных элементов
  • функцию mutableListOf,
    которая создает изменяемый список
  • функцию emptyList,
    которая создает пустой неизменяемый список
  • функцию buildSet,
    которая создает множество с использованием builder-логики