Как добавить элемент в 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) => если мы попробуем добавить число еще раз, то будет обнаружена ошибка компиляции