如何在 Kotlin 中将一个项目添加到 ArrayList
中?
如何在 Kotlin 中将一个项目添加到 ArrayList
中?
对于刚从java
迁移到Kotlin
的人,List
默认是不可变的,可变版本的列表称为MutableList
。
因此,如果你有这样的代码:
val list: List<String> = ArrayList()
在这种情况下,你将无法获得 add()
方法,因为列表是不可变的。因此,你需要像下面这样声明一个 MutableList
:
val list: MutableList<String> = ArrayList()
现在你将看到一个add()
方法,你可以向任何列表中添加元素。
如果你有一个MUTABLE(可变的)集合:
val list = mutableListOf(1, 2, 3)
list += 4
如果你有一个不可变的集合:
var list = listOf(1, 2, 3)
list += 4
请注意,我使用val
来表示可变列表的对象始终相同,但其内容会发生更改。var
。使用+=
运算符创建带有附加值的新对象。+=
操作需要将列表的所有元素复制到一个新的可变列表中,然后将其重新赋值给实际的列表。我不知道将列表声明为 var
是合适的。无论如何,对我来说,将列表声明为 var
不是一个好主意。 - crgarridosvar
的选项。如果一个不可变的列表被声明为 val
,那么这个列表就永远不能改变了。只有将它重新分配给另一个变量才是可能的。 - guenhter如果你想特别使用Java的ArrayList,那么可以像这样做:
fun initList(){
val list: ArrayList<String> = ArrayList()
list.add("text")
println(list)
}
否则 @guenhter 的回答就是你要找的答案。+=
来向数组中添加新项,例如:private var songs: Array<String> = arrayOf()
fun add(input: String) {
songs += input
}
String
ArrayList
的代码示例。val arrayList: ArrayList<String> = ArrayList()
arrayList.add("January")
val list: MutableList<String> = ArrayList()
和val list = mutableListOf<String>()
之间的用法差异是什么? - Sam Chen