В Kotlin сопоставление списка по индексу и значению включает преобразование элементов списка на основе их позиций и значений. Этот процесс обычно используется в функциональном программировании и может быть реализован различными методами. В этой статье мы рассмотрим различные подходы к сопоставлению списков по индексу и значению в Kotlin, приведя примеры кода для каждого метода.
Метод 1: использование функции mapIndexed
Функция mapIndexed в Kotlin позволяет нам перебирать список, одновременно получая доступ как к индексу, так и к значению каждого элемента. Вот пример:
val list = listOf("apple", "banana", "orange")
val mappedList = list.mapIndexed { index, value ->
"[$index] $value"
}
println(mappedList)
Выход:
[0] apple
[1] banana
[2] orange
Метод 2: использование функции mapIndexedNotNull
Если мы хотим отфильтровать определенные элементы при сопоставлении списка, мы можем использовать функцию mapIndexedNotNull. Эта функция пропускает нулевые значения, возвращаемые функцией сопоставления. Вот пример:
val list = listOf("apple", "banana", "orange")
val mappedList = list.mapIndexedNotNull { index, value ->
if (index % 2 == 0) "[$index] $value" else null
}
println(mappedList)
Выход:
[0] apple
[2] orange
Метод 3: использование цикла forEachIndexed
Хотя цикл forEachIndexed не является функцией сопоставления, его можно использовать для достижения аналогичного результата. Вот пример:
val list = listOf("apple", "banana", "orange")
val mappedList = mutableListOf<String>()
list.forEachIndexed { index, value ->
mappedList.add("[$index] $value")
}
println(mappedList)
Выход:
[0] apple
[1] banana
[2] orange
Метод 4: использование функции карты с индексами
В Kotlin мы также можем объединить функцию карты со свойством indexs списка для достижения сопоставления на основе индекса. Вот пример:
val list = listOf("apple", "banana", "orange")
val mappedList = list.indices.map { index ->
"[$index] ${list[index]}"
}
println(mappedList)
Выход:
[0] apple
[1] banana
[2] orange
В этой статье мы рассмотрели различные методы сопоставления списков по индексу и значению в Kotlin. Мы рассмотрели функции MapIndexed и MapIndexedNotNull, а также цикл forEachIndexed и комбинацию карты и индексов. Используя эти методы, вы можете легко преобразовывать списки в зависимости от их позиций и значений, позволяя использовать мощные парадигмы функционального программирования в вашем коде Kotlin.