Kotlin 中 List 和 MutableList 的区别

在 Kotlin 中,List 和 MutableList 是两种不同的集合接口,核心区别在于可变性。

Kotlin 集合框架的重要设计原则:通过接口分离只读(read - only)和可变(mutable)操作,以提高代码的安全性和可维护性。

List:是不可变集合接口(线程安全),一旦创建,其元素数量和元素内容都不能被修改。这种不可变有助于提高代码的安全性和可维护性,避免意外的数据修改。

val list = listOf("A", "B", "C")
list[0] = "X" // 编译错误!不允许修改
list.add("D") // 变异错误!没有 add 方法

MutableList:是可变集合接口,允许对集合中的元素进行添加、删除、修改等操作。这使得 MutableList 更加灵活,适用于需要动态改变集合内容的场景。

val mutableList = mutableListOf("A", "B", "C")
mutableList[0] = "X" // 允许修改
mutableList.add("D") // 允许添加
mutableList.removeAt(1) // 允许删除

只读 —> 可变:使用 toMutableList() 创建新的可变副本:

val list = listOf(1, 2, 3)
val mutableList = list.toMutableList() // 新对象
mutableList.add(4)

可变 —> 只读:使用 toList() 创建新的只读副本:

val mutable = mutableListOf(1, 2, 3)
val readOnly = mutable.toList()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值