如何在 Kotlin 向数组列表中添加项?

如何在 Kotlin 的 abc0中添加一个项目?

183782 次浏览

如果你有一个 易变收藏:

val list = mutableListOf(1, 2, 3)
list += 4

如果你有一个 一成不变收藏:

var list = listOf(1, 2, 3)
list += 4

注意,我使用 val作为可变列表,以强调对象始终相同,但其内容发生了变化。

在不可变列表的情况下,必须将其设置为 var+=运算符使用附加值创建一个新对象。

如果你想特别使用 java 数组列表,你可以这样做:

fun initList(){
val list: ArrayList<String> = ArrayList()
list.add("text")
println(list)
}

否则@guenhter 就是你要找的答案。

For people just migrating from java, In Kotlin List is by default immutable and mutable version of Lists is called MutableList.

因此,如果你有这样的东西:

val list: List<String> = ArrayList()

在这种情况下,您不会得到一个 add()方法,因为 list 是不可变的。因此,你必须如下所示声明 MutableList:

val list: MutableList<String> = ArrayList()

现在您将看到一个 add()方法,并且可以向任何列表添加元素。

可以使用 +=向数组中添加新项,例如:

private var songs: Array<String> = arrayOf()
fun add(input: String) {
songs += input
}

我所做的是在视图模型中存储一个字符串列表,并在片段中访问它。

我创建了一个对话框片段,正在编辑对话框中的字符串,并使用导航组件将字符串值返回给主片段。

当输入对话框片段时,视图模型被清除,列表也随之清除。因此,当我将列表传递给适配器时,它实际上不会显示任何内容,并且有一个引用错误。

还有, 当传递 list 到适配器 add 时,toList ()

‘ Adapter.subMItList (viewModel.lableList.toList ())’

这是一个如何在 Kotlin 的 String/ArrayList中添加一个项目的代码示例。

val arrayList: ArrayList<String> = ArrayList()
arrayList.add("January")