当前位置: 首页 > news >正文

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()

相关文章:

  • VS2022 Qt配置Qxlsx
  • Oracle02-安装
  • Kotlin空安全解决Android NPE问题
  • 13.Spring boot中使用Actuator 监控
  • 链表的面试题3找出中间节点
  • git “分离头指针”(detached HEAD) 状态。
  • 【上位机——MFC】绘图
  • Servlet--快速入门及HTTP概述
  • DXFViewer进行中2 -> 直线 解析+渲染 ✅已完成
  • uniapp开发09-设置一个tabbar底部导航栏且配置icon图标
  • react-13react中外部css引入以及style内联样式(动态className与动态style)
  • 貌似我的ollama加载的模型被下载了两份?终于搞懂原理了。
  • 「Mac畅玩AIGC与多模态22」开发篇18 - 多段输出拼接与格式化展现工作流示例
  • ASP.NET Core 中间件
  • 微调大模型如何准备数据集——常用数据集,Alpaca和ShareGPT
  • PyTorch 与 TensorFlow 中基于自定义层的 DNN 实现对比
  • 基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)
  • 免费视频压缩软件
  • 应用服务器Tomcat
  • 【优选算法 | 模拟】探索模拟算法: 编程与问题分析的双重 考验
  • 定西做网站/凡科建站登录
  • 做网站 微信开发前景/app地推接单平台有哪些
  • 旅游网站设计页面/天天外链官网
  • 成立网站要什么手续/网络营销主要做些什么工作
  • 网站建设常规自适应/班级优化大师app
  • 沈阳网络建网站个人/优化设计四年级上册数学答案