Kotlin中向mutableList添加多个条目的正确语法是什么
Kotlin向MutableList添加多个条目的语法说明
首先你需要先调整现有变量的声明类型:你当前用List<Product.MyAttribute>作为变量类型,这是Kotlin的只读列表接口,本身没有修改列表的相关方法。如果要直接修改列表内容,需要把变量类型改为MutableList,也可以直接省略类型声明让编译器自动推断,修改后的初始化代码如下:
val someAttributes = mutableListOf(Product.MyAttribute("ATTRIBUTE A", listOf("3")))
以下是几种常用的添加多个条目的正确语法:
- 初始化时直接填充所有条目
如果你一开始就明确所有需要加入列表的元素,可以直接在mutableListOf方法中传入全部实例,不需要后续额外添加:val someAttributes = mutableListOf( Product.MyAttribute("ATTRIBUTE A", listOf("3")), Product.MyAttribute("ATTRIBUTE B", listOf("1", "2")), Product.MyAttribute("ATTRIBUTE C", listOf("5", "6", "7")) ) - 调用
addAll方法批量添加
适合列表初始化完成后,后续需要批量追加元素的场景:someAttributes.addAll( listOf( Product.MyAttribute("ATTRIBUTE B", listOf("1", "2")), Product.MyAttribute("ATTRIBUTE C", listOf("5", "6", "7")) ) ) - 用
+=运算符批量添加
Kotlin为MutableList重载了plusAssign运算符,写法更简洁:// 也可以单次加单个元素,直接传入实例即可 someAttributes += listOf( Product.MyAttribute("ATTRIBUTE B", listOf("1", "2")), Product.MyAttribute("ATTRIBUTE C", listOf("5", "6", "7")) ) - 逐个调用
add方法添加
适合需要动态判断是否添加每个元素的场景:someAttributes.add(Product.MyAttribute("ATTRIBUTE B", listOf("1", "2"))) // 可以穿插逻辑判断,符合条件再添加下一个 if (needAddAttributeC) { someAttributes.add(Product.MyAttribute("ATTRIBUTE C", listOf("5", "6", "7"))) }
如果你确实需要保留List类型的变量声明,也可以把变量改为var,通过+运算符生成新列表赋值给变量,这种方式不会修改原列表,而是生成新的列表实例:
var someAttributes: List<Product.MyAttribute> = mutableListOf(Product.MyAttribute("ATTRIBUTE A", listOf("3"))) someAttributes += listOf( Product.MyAttribute("ATTRIBUTE B", listOf("1", "2")), Product.MyAttribute("ATTRIBUTE C", listOf("5", "6", "7")) )
内容的提问来源于stack exchange,提问作者incnnu
相关产品推荐
相关产品推荐

