Kotlin 集合操作
一、集合操作简介
集合操作本质上是对集合内元素进行一系列的处理,最终得到我们想要的结果。这些操作可以大致分为以下几类:
- 创建集合: Kotlin 提供多种方式创建 List、Set、Map 等不同类型的集合。
- 遍历集合: 我们可以使用循环或迭代器遍历集合中的每个元素。
- 转换集合: 使用
map
函数将集合元素进行转换,生成新的集合。 - 过滤集合: 使用
filter
函数根据条件筛选出符合要求的元素,组成新的集合。 - 聚合操作: 使用
reduce
、fold
等函数对集合元素进行累计计算,得到单个结果。 - 分组操作: 使用
groupBy
函数根据特定条件将集合元素分组。
二、常用集合操作函数
1. 创建集合
listOf()
,setOf()
,mapOf()
: 创建不可变集合。mutableListOf()
,mutableSetOf()
,mutableMapOf()
: 创建可变集合。
val numbers = listOf(1, 2, 3, 4, 5) // 创建不可变 List
val mutableNumbers = mutableListOf(1, 2, 3) // 创建可变 List
val names = setOf("Alice", "Bob", "Charlie") // 创建不可变 Set
val userMap = mapOf("Alice" to 20, "Bob" to 25) // 创建不可变 Map
2. 遍历集合
for
循环: 遍历集合元素。forEach
函数: 对每个元素执行指定操作。
for (number in numbers) {
println(number)
}
numbers.forEach { println(it) }
3. 转换集合
map
函数: 将集合元素进行转换,返回一个新集合。
// 将每个数字翻倍
val doubledNumbers = numbers.map { it * 2 }
4. 过滤集合
filter
函数: 根据条件筛选元素,返回一个新集合。
// 筛选出偶数
val evenNumbers = numbers.filter { it % 2 == 0 }
5. 聚合操作
reduce
函数: 从第一个元素开始,将两个元素进行累计计算,最终得到单个结果。fold
函数: 类似于reduce
,但可以指定初始值。
// 计算所有数字的和
val sum = numbers.reduce { acc, number -> acc + number }
// 计算所有数字的乘积,初始值为 1
val product = numbers.fold(1) { acc, number -> acc * number }
6. 分组操作
groupBy
函数: 根据指定条件将集合元素分组。
// 将学生按年龄分组
data class Student(val name: String, val age: Int)
val students = listOf(Student("Alice", 20), Student("Bob", 20), Student("Charlie", 21))
val studentsByAge = students.groupBy { it.age }