Как добавить элемент в ArrayList в Котлин?
Как добавить элемент в ArrayList
в Котлин?
Ответы
Ответ 1
Если у вас есть коллекция MUTABLE:
val list = mutableListOf(1, 2, 3)
list += 4
Если у вас есть НЕМЕРТОВАЯ коллекция:
var list = listOf(1, 2, 3)
list += 4
обратите внимание, что я использую val
для изменяемого списка, чтобы подчеркнуть, что объект всегда один и тот же, но его содержимое изменяется.
В случае неизменного списка, вы должны сделать его var
. Новый объект создается оператором +=
с дополнительным значением.
Ответ 2
Для людей, которые просто мигрируют из java
, In Kotlin
List
является неизменной, а изменяемая версия Lists называется MutableList
.
Следовательно, если у вас есть что-то вроде:
val list: List<String> = ArrayList()
В этом случае вы не получите метод add()
как список неизменен. Следовательно, вам придется объявить MutableList
как показано ниже:
val list: MutableList<String> = ArrayList()
Теперь вы увидите метод add()
и можете добавлять элементы в любой список.
Ответ 3
Если вы хотите специально использовать java ArrayList, вы можете сделать что-то вроде этого:
fun initList(){
val list: ArrayList<String> = ArrayList()
list.add("text")
println(list)
}
В противном случае ответ @guenhter - тот, который вы ищете.
Ответ 4
Также стоит отметить, что в некоторых случаях даже для неизменяемого Array
/ArrayList
можно использовать функцию plus(item)
которая создает копию исходного массива с добавленным item:
например:
fun main(args: Array<String>) {
val enhancedArgs = args.plus("-config=/path/to/config.file")
EngineMain.main(enhancedArgs)
}
Ответ 5
Есть два типа коллекции в основном: 1. Изменяемая коллекция и 2. Неизменяемая коллекция.
Изменяемая коллекция: мы можем добавить элемент в объект коллекции в любое время.
val числа: MutableList<"Int> = mutableListOf (1, 2, 3)
numbers.add(4)
println (цифры). Выход будет → 1,2,3,4
Неизменяемая коллекция: как только объект коллекции инициирован, он никогда не изменяет новый объект или никогда не может очистить объект от объекта коллекции
Валь числа: List<"Int> = listOf (1,2)
println (числа) => o/p будет 1,2
numbers.add(10) => если мы попробуем добавить число еще раз, то будет обнаружена ошибка компиляции