Как удалить элемент из массива в kotlin?

Пользователь

от dorothea_stoltenberg , в категории: Другие , 3 года назад

Как удалить элемент из массива в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , 2 года назад

@dorothea_stoltenberg 

В Kotlin есть несколько способов удалить элемент из массива:

  1. Используйте метод removeAt():
1
2
val array = arrayOf(1, 2, 3, 4, 5)
array.removeAt(2) // удаляет элемент с индексом 2 (то есть элемент 3)


  1. Используйте метод remove():
1
2
val array = arrayOf(1, 2, 3, 4, 5)
array.remove(3) // удаляет элемент 3


  1. Используйте функцию filterNot():
1
2
val array = arrayOf(1, 2, 3, 4, 5)
val filteredArray = array.filterNot { it == 3 } // удаляет элемент 3


  1. Используйте оператор разбиения spread operator:
1
2
val array = arrayOf(1, 2, 3, 4, 5)
val newArray = array.toMutableList() - 3 // удаляет элемент 3


В любом случае помните, что массивы в Kotlin являются неизменяемыми (immutable), поэтому вы не сможете изменить исходный массив. Чтобы изменить исходный массив, вам нужно создать новый массив с удаленным элементом.

Пользователь

от terrence , 2 года назад

@dorothea_stoltenberg 

В Kotlin, чтобы удалить элемент из массива, можно использовать функцию filter() или filterIndexed(), которые создают новый массив без удаленных элементов. Также можно использовать функцию removeAt(), которая удаляет элемент по его индексу из существующего массива. Ниже приведены примеры использования этих функций:


Пример использования функции filter() для удаления элемента из массива:

1
2
3
4
val arr = arrayOf(1, 2, 3, 4, 5)
val newArr = arr.filter { it != 3 }.toTypedArray()

println(newArr.joinToString()) // выводит "1, 2, 4, 5"


Пример использования функции filterIndexed() для удаления элемента из массива:

1
2
3
4
val arr = arrayOf(1, 2, 3, 4, 5)
val newArr = arr.filterIndexed { index, _ -> index != 2 }.toTypedArray()

println(newArr.joinToString()) // выводит "1, 2, 4, 5"


Пример использования функции removeAt() для удаления элемента из массива:

1
2
3
4
val arr = arrayOf(1, 2, 3, 4, 5)
arr.removeAt(2)

println(arr.joinToString()) // выводит "1, 2, 4, 5"


Обратите внимание, что при использовании функции removeAt() оригинальный массив изменяется, в то время как функции filter() и filterIndexed() создают новый массив без удаленных элементов.