Функция replaceAll

Функция replaceAll применяет указанную функцию-преобразование ко всем элементам изменяемой коллекции и заменяет каждый элемент результатом этого преобразования. Функция работает только с изменяемыми коллекциями: MutableList, ArrayList, Array (с использованием replaceAll из java.util.Arrays).

Импорт

kotlin// Для MutableList
import kotlin.collections.replaceAll

// Для Array (требуется Java Arrays)
import java.util.Arrays

Синтаксис

kotlin// Для MutableList
inline fun <T> MutableList<T>.replaceAll(operator: (T) -> T): Unit

// Для Array (через Java Arrays)
fun <T> Array<T>.replaceAll(operator: UnaryOperator<T>): Unit

Пример

Заменим все элементы в MutableList, преобразовав числа в их квадраты:

kotlinval numbers = mutableListOf(1, 2, 3, 4, 5)
numbers.replaceAll { it * it }
println(numbers)

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

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

Пример

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

kotlinval words = mutableListOf("hello", "world", "kotlin")
words.replaceAll { it.uppercase() }
println(words)

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

kotlinMutableList<String> ['HELLO', 'WORLD', 'KOTLIN']

Пример

Использование replaceAll с массивом через java.util.Arrays:

kotlinval array = arrayOf(1, 2, 3, 4, 5)
Arrays.replaceAll(array) { it * 2 }
println(array.contentToString())

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

kotlinArray<Int> [2, 4, 6, 8, 10]

Пример

Замена всех элементов с использованием сложной логики преобразования:

kotlinval values = mutableListOf(10, 25, 37, 42, 58)
values.replaceAll {
  if (it % 2 == 0) it / 2 else it * 2
}
println(values)

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

kotlinMutableList<Int> [20, 50, 74, 21, 116]

Для каких типов коллекций работает

Функция replaceAll работает со следующими типами коллекций:

Не работает с:

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

  • функцию map,
    которая создает новую коллекцию с преобразованными элементами
  • функцию mapIndexed,
    которая преобразует элементы с учетом их индекса
  • функцию forEach,
    которая выполняет действие для каждого элемента коллекции
  • функцию transform,
    которая преобразует элементы коллекции по определенным правилам