Функция replaceAll
Функция replaceAll применяет указанную функцию-преобразование
ко всем элементам изменяемой коллекции и заменяет каждый элемент
результатом этого преобразования. Функция работает только с
изменяемыми коллекциями: MutableList, ArrayList,
Array (с использованием replaceAll из java.util.Arrays).
Импорт
// Для MutableList
import kotlin.collections.replaceAll
// Для Array (требуется Java Arrays)
import java.util.Arrays
Синтаксис
// Для MutableList
inline fun <T> MutableList<T>.replaceAll(operator: (T) -> T): Unit
// Для Array (через Java Arrays)
fun <T> Array<T>.replaceAll(operator: UnaryOperator<T>): Unit
Пример
Заменим все элементы в MutableList, преобразовав
числа в их квадраты:
val numbers = mutableListOf(1, 2, 3, 4, 5)
numbers.replaceAll { it * it }
println(numbers)
Результат выполнения кода:
MutableList<Int> [1, 4, 9, 16, 25]
Пример
Преобразуем все строки в списке в верхний регистр:
val words = mutableListOf("hello", "world", "kotlin")
words.replaceAll { it.uppercase() }
println(words)
Результат выполнения кода:
MutableList<String> ['HELLO', 'WORLD', 'KOTLIN']
Пример
Использование replaceAll с массивом через java.util.Arrays:
val array = arrayOf(1, 2, 3, 4, 5)
Arrays.replaceAll(array) { it * 2 }
println(array.contentToString())
Результат выполнения кода:
Array<Int> [2, 4, 6, 8, 10]
Пример
Замена всех элементов с использованием сложной логики преобразования:
val values = mutableListOf(10, 25, 37, 42, 58)
values.replaceAll {
if (it % 2 == 0) it / 2 else it * 2
}
println(values)
Результат выполнения кода:
MutableList<Int> [20, 50, 74, 21, 116]
Для каких типов коллекций работает
Функция replaceAll работает со следующими типами коллекций:
MutableList- изменяемые спискиArrayList- массивы списковArray- массивы (черезjava.util.Arrays.replaceAll)
Не работает с:
List- неизменяемые спискиSet- множества (изменяемые и неизменяемые)Map- словари (изменяемые и неизменяемые)Sequence- последовательности
Смотрите также
-
функцию
map,
которая создает новую коллекцию с преобразованными элементами -
функцию
mapIndexed,
которая преобразует элементы с учетом их индекса -
функцию
forEach,
которая выполняет действие для каждого элемента коллекции -
функцию
transform,
которая преобразует элементы коллекции по определенным правилам