如何ArrayList
在Kotlin中添加商品?
Answers:
对于刚从中迁移的人java
,Kotlin
List
默认情况下,In是不可变的且可变的Lists版本MutableList
。
因此,如果您有类似以下内容:
val list: List<String> = ArrayList()
在这种情况下,add()
由于list是不可变的,因此您将不会获得方法。因此,您必须声明a MutableList
,如下所示:
val list: MutableList<String> = ArrayList()
现在,您将看到一个add()
方法,可以将元素添加到任何列表中。
val list: MutableList<String> = ArrayList()
和之间有什么用途区别val list = mutableListOf<String>()
?
如果您有MUTABLE集合:
val list = mutableListOf(1, 2, 3)
list += 4
如果您有IMMUTABLE集合:
var list = listOf(1, 2, 3)
list += 4
请注意,我使用val
可变列表来强调该对象始终是相同的,但是其内容会发生变化。
如果是不可变的列表,则必须添加var
。+=
操作员将使用附加值创建一个新对象。
+=
的一个不可变列表,需要对列表中的所有元素复制可变的新列表,然后将其重新分配给您的实际列表。我不知道将您的清单声明为是合适的var
。无论如何,声明一个变量列表对我来说不是一个好主意。
var
。如果将不可变列表声明为val
,则该列表将永远无法更改。只需将其重新分配给另一个变量即可。