如何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,则该列表将永远无法更改。只需将其重新分配给另一个变量即可。