Функция defaultIfEmpty

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

Синтаксис

kotlinfun <T> Iterable<T>.defaultIfEmpty(defaultValue: T): List<T>

Параметры

defaultValue - значение, которое будет возвращено в виде одноэлементного списка, если исходная коллекция окажется пустой.

Пример

Применим функцию к непустой коллекции:

kotlinval numbers = listOf(1, 2, 3, 4, 5)
val res = numbers.defaultIfEmpty(999)
println(res)

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

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

Пример

Применим функцию к пустой коллекции:

kotlinval emptyList = emptyList<Int>()
val res = emptyList.defaultIfEmpty(999)
println(res)

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

kotlinList<Int> [999]

Пример

Использование со строковыми коллекциями:

kotlinval names = listOf("John", "Jane", "Mike")
val emptyNames = emptyList<String>()

val res1 = names.defaultIfEmpty("Unknown")
val res2 = emptyNames.defaultIfEmpty("Unknown")

println(res1)
println(res2)

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

kotlinList<String> ['John', 'Jane', 'Mike']
List<String> ['Unknown']

Пример

Использование в цепочке операций:

kotlinval numbers = listOf(10, 20, 30, 40, 50)
val filteredNumbers = numbers.filter { it > 100 }

val res = filteredNumbers
  .map { it * 2 }
  .defaultIfEmpty(0)
  
println(res)

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

kotlinList<Int> [0]

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

  • функцию ifEmpty,
    которая выполняет действие для пустой коллекции
  • функцию isEmpty,
    которая проверяет коллекцию на пустоту
  • функцию orEmpty,
    которая возвращает пустую коллекцию для null значения
  • функцию firstOrNull,
    которая возвращает первый элемент или null