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

Kotlin--2--list

一、for循环

until——左开右闭

fun main(){ for(i in 0..9){ print("$i ") } for(i in 0 until 10){ print("$i ") } }

二、List

在 Kotlin 中,ArrayListlistOfarrayListOfmutableListOf是常用的集合创建方式,但它们在类型、可变性和使用场景上有明显区别。以下是核心对比:

1.ArrayList<T>()
  • 本质:直接创建 Java 的ArrayList类实例。
  • 特点:需显式指定类型(除非通过初始化值推断)。
val list = ArrayList<String>() // 创建空的可变列表 list.add("apple") list.add("banana")
2.listOf()
  • 本质:创建不可变的只读列表(实现List接口)。
  • 特点
    • 由 Kotlin 标准库提供,优化了空列表和单元素列表的内存占用。
    • 调用add()remove()等修改方法会抛出UnsupportedOperationException
val immutableList = listOf("a", "b", "c") // 不可变列表 // immutableList.add("d") // 编译错误:List 接口无 add() 方法
3.arrayListOf()
  • 本质:创建可变的ArrayList实例,是ArrayList()的快捷方式。
  • 特点
    • 无需显式指定泛型类型(通过初始化值推断)。
    • 完全等价于ArrayList<T>().apply { addAll(...) }
val mutableList = arrayListOf("apple", "banana") // 可变列表 mutableList.add("cherry") // 合法
4.mutableListOf()
  • 本质:创建实现MutableList接口的可变列表,默认是ArrayList
  • 特点
    • 类型声明为MutableList,更抽象,允许未来更换实现(如切换为LinkedList)。
    • 初始化语法更简洁,支持默认参数。
    • val是不可变定义,但是mutableListOf是可以修改的——
      • ​​原因:​​val 限制的是引用不能重新指向,而不是对象一定不可变。
val mutableList: MutableList<String> = mutableListOf("a", "b") // 可变列表 mutableList.add("c") // 合法
http://www.jsqmd.com/news/1098606/

相关文章:

  • 智能审计系统(Intelligent Audit System)深度解析:构建基于自动化规则与数据风控的企业级合规检测平台
  • 3个核心功能解析:OCAT如何简化OpenCore配置流程
  • State 深度解析:Reducer、Schema 与多状态设计——从零开始学 LangGraph(二)
  • 第七章-动态规划和遗传算法
  • 股票因子组合怎么避免回测过拟合
  • C++课后习题训练记录Day144
  • AI编程效率提升:从代码生成到工作流自动化的实践
  • S15.3行动触发——降低用户决策的最后阻力
  • 普通投资者做策略复盘时应该记录哪些技术字段
  • 如何将VR视频转换为2D格式:VR-Reversal完整指南
  • 4步构建企业级质量保障体系:Vue.Draggable项目集成Git Hooks自动化检查实战指南
  • 基于HarmonyOS 7.0 跨端开发的沙漠探险装备指南页面实战
  • VMware安装Windows 3.1全攻略:解决声卡驱动与兼容性问题
  • 准对称离散无记忆信道容量的矩阵分解法推广与严谨证明(P124302086杨雪)
  • 【毕业设计】师生健康信息管理系统 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 【大模型原理与微调实战03】自注意力机制核心原理:大模型理解语言的底层心脏
  • 终极SVG编辑器指南:3分钟掌握浏览器矢量绘图
  • 特征空间度量:高维语义特征的欧氏距离计算
  • 终极iOS降级实战:如何用Legacy-iOS-Kit让旧设备重获新生
  • 股票信号监控从行情数据到提醒链路怎么设计
  • MVCC详细说明
  • 基于HarmonyOS 7.0 跨端开发的宝石真伪鉴定页面实战
  • 手机AI Agent落地实战:从场景适配到工程避坑指南
  • Java计算机毕设之基于 SpringBoot 的线上教学质量评估管理系统的设计与实现 基于 SpringBoot 的高校课程评分信息管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • Python开发者实战指南:从零部署Apache Doris并实现数据连接与操作
  • 终极指南:如何快速上手OpenXLSX C++库处理Excel文件
  • 从零开始构建yolov8-seg模型
  • 容器化——让应用“拎包入住“
  • DeepSeek联合北大最新文章DSpark: 如何让大模型推理速度提升 85%?
  • 深入 Claude Code 源码(六):多智能体——Coordinator 与 AgentTool 深度解析