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

Kotlin 中集合遍历有哪几种方式?

1 for-in 循环(最常用)

val list = listOf("A", "B", "C")
for (item in list) {print("$item ")
}// A B C 

2 forEach 高阶函数

val list = listOf("A", "B", "C")
list.forEach { item ->print("$item ")
}// A B C 

3 带索引遍历

3.1 使用 forEachIndexed
val list = listOf("A", "B", "C")
list.forEachIndexed { index, item ->println("$index - $item")
}// 0 - A
// 1 - B
// 2 - C
3.2 使用 withIndex() + for-in

使用 withIndex() 生成包含索引和值的迭代器。

val list = listOf("A", "B", "C")
for ((index, item) in list.withIndex()) {println("$index - $item")
}// 0 - A
// 1 - B
// 2 - C
4 传统索引遍历(适用于 List

通过集合的 indices 属性获取索引范围。

val list = listOf("A", "B", "C")
for (i in list.indices) { // println("${list[i]} at $i")
}// A at 0
// B at 1
// C at 2

5 迭代器(iterator

val list = listOf("A", "B", "C")
val iterator = list.iterator()
while (iterator.hasNext()) {print("${iterator.next()} ")
}// A B C 

6 List 专用:双向遍历(ListIterator

val list = listOf("A", "B", "C")
val listIterator = list.listIterator()
while (listIterator.hasNext()) {print("${listIterator.next()} ")
}println()while (listIterator.hasPrevious()) {print("${listIterator.previous()} ")
}// A B C 
// C B A 

7 while 循环(手动控制索引)

val list = listOf("A", "B", "C")
var i = 0
while (i < list.size) {print("${list[i]} ")i++
}
// A B C 

8 map 遍历转换(返回新集合)

val list = listOf("A", "B", "C")
val newList = list.map { item ->"Item: $item"
}
println(newList)// [Item: A, Item: B, Item: C]

9 区间遍历(for + until/downTo

适用于需要自定义步长或方向的场景:

val list = listOf("A", "B", "C")
for (i in 0 until list.size) {print("${list[i]} ")
}
// A B C val list = listOf("A", "B", "C")
for (i in list.size - 1 downTo 0) {print("${list[i]} ")
}
// C B A val list = listOf("A", "B", "C")
for (i in 0 until list.size step 2) { // 指定步长print("${list[i]} ")
}// A C 

10 不同场景推荐

  • 简单遍历:for-inforEach
  • 需要索引:forEachIndexedwithIndex
  • 逆序遍历:reversed() + for-in
  • 需要删除元素:使用 MutableIterator(在迭代中安全删除)
val list = listOf("A", "B", "C")
for (item in list.reversed()) {print("$item ")
}// C B A val mutableList = mutableListOf("A", "B", "C")
val iterator = mutableList.iterator()
while (iterator.hasNext()) {if (iterator.next() == "B") iterator.remove()
}
println(mutableList)// [A, C]

相关文章:

  • Kotlin委托机制使用方式和原理
  • 再见Notepad++,你好Notepad--
  • MATLAB语言教程:从入门到精通的全面指南
  • 【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解
  • ES中must与filter的区别
  • Elasticsearch的集群管理介绍
  • ElasticSearch简介及常用操作指南
  • django项目开启debug页面操作有数据操作记录
  • Starrocks 物化视图的实现以及在刷新期间能否读数据
  • 记一次 Starrocks be 内存异常宕机
  • R语言在生物群落数据统计分析与绘图中的实践应用
  • 拉取gitlab项目
  • 零基础设计模式——结构型模式 - 代理模式
  • YOLO12改进-模块-引入AFE模块 增强模型对复杂场景(如杂乱背景、小目标、半透明物体)的特征提取能力
  • python2解决反编译乱码
  • 数值计算与数据相关参数剖析:保障模型训练稳定与准确
  • Selenium基础操作方法详解
  • 题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结
  • 【仿生系统】爱丽丝机器人的设想(可行性优先级较高)
  • Vulhub靶场搭建(Ubuntu)
  • 深圳网站优讳化/百度推广注册
  • wordpress 图片加水印/seo网络推广方法
  • 有没有做的很炫的科技型网站/网店代运营公司哪家好
  • 编程猫加盟条件和费用/襄阳seo
  • 建设一个网站的方法/排名函数
  • 做seo时网站更新的目的/推广产品的软文怎么写