# Kotlin 集合用法
## 创建集合
```kotlin
// 创建一个空的 List
val list: List<Int> = mutableListOf()
// 创建一个包含初始元素的 List
val numbers = listOf(1, 2, 3, 4, 5)
// 创建一个空的 Set
val set: Set<String> = hashSetOf()
// 创建一个包含初始元素的 Set
val fruits = setOf("Apple", "Banana", "Cherry")
// 创建一个空的 Map
val map: Map<String, Int> = hashMapOf()
// 创建一个包含初始键值对的 Map
val ages = mapOf("Alice" to 25, "Bob" to 30)
向集合添加元素
val list = mutableListOf("Kotlin", "Java")
list.add("Scala") // List 支持添加元素
val set = hashSetOf("Kotlin", "Java")
set.add("Scala") // Set 不允许重复元素
访问集合元素
val numbers = listOf(1, 2, 3, 4, 5)
val firstNumber = numbers[0] // 获取第一个元素
val map = mapOf("Alice" to 25, "Bob" to 30)
val age = map["Alice"] // 通过键获取值
遍历集合
val list = listOf("Kotlin", "Java", "Scala")
for (item in list) {
println(item)
}
val map = mapOf("Alice" to 25, "Bob" to 30)
for ((key, value) in map) {
println("$key is $value years old")
}
集合操作
-
filter
:过滤集合
-
map
:转换集合中的每个元素
-
forEach
:对集合中的每个元素执行操作
-
any
:检查集合中是否有至少一个元素满足条件
-
all
:检查集合中的所有元素是否满足条件
-
find
:查找第一个满足条件的元素
-
count
:返回满足条件的元素数量
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 } // 获取偶数
val doubled = numbers.map { it * 2 } // 每个元素乘以 2
numbers.forEach { println(it) } // 打印每个元素
val hasEven = numbers.any { it % 2 == 0 } // 检查是否有偶数
val allEven = numbers.all { it % 2 == 0 } // 检查是否所有都是偶数
val firstEven = numbers.find { it % 2 == 0 } // 查找第一个偶数
val evenCount = numbers.count { it % 2 == 0 } // 计算偶数数量
集合的不可变性和可变性
- 不可变集合(如
listOf
, setOf
, mapOf
)一旦创建就不能修改。
- 可变集合(如
mutableListOf
, hashSetOf
, hashMapOf
)可以添加、删除或更改元素。
val immutableList = listOf(1, 2, 3) // 不可变 List
// immutableList.add(4) // 错误:不可变集合不能添加元素
val mutableList = mutableListOf(1, 2, 3) // 可变 List
mutableList.add(4) // 正确:可变集合可以添加元素