You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中Array、List、MutableList的plus()方法为何不生效?

Kotlin中plus()方法不修改原集合的原因解析

核心原因

Kotlin里的plus()方法(包括对应的+运算符)是不可变操作:它不会修改调用它的原集合,而是返回一个包含原集合元素和新增元素/集合的全新集合。

看你的测试代码:

fun main() {
    var arr=mutableListOf<Int>(4,5) ;
    var arr2=mutableListOf<Int>(1,3); 
    arr.add(8);
    arr2.plus(arr) // 仅生成新集合,但未赋值给arr2,原arr2无变化
     
    println( arr2.size);
}

你调用arr2.plus(arr)后,没有接收返回的新集合,所以原arr2的元素和大小完全没改变,输出自然是2。

正确使用plus()的方式

如果要通过plus()实现集合合并,需要把返回的新集合赋值给原变量:

fun main() {
    var arr=mutableListOf<Int>(4,5) ;
    var arr2=mutableListOf<Int>(1,3); 
    arr.add(8);
    arr2 = arr2.plus(arr) // 将新集合赋值给arr2
     
    println( arr2.size); // 输出5,元素为[1,3,4,5,8]
}

为什么add()能直接生效

add()是MutableList专属的可变操作,它会直接修改原集合的内部结构,不需要返回新对象,所以调用后原集合的元素会立即增加。

批量修改原集合的替代方案

如果想直接修改原MutableList(不生成新集合),除了单个元素的add(),还可以用addAll()批量添加另一个集合的元素:

arr2.addAll(arr) // 直接修改原arr2,size变为5

内容的提问来源于stack exchange,提问作者Александр Д

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:05:04