Kotlin 中 Map 和 List 常用功能总结
List 常用功能
创建 List
kotlin
val immutableList = listOf(1, 2, 3) // 不可变列表
val mutableList = mutableListOf("a", "b", "c") // 可变列表
val emptyList = emptyList<String>() // 空列表
基本操作
kotlin
val size = list.size // 获取大小
val isEmpty = list.isEmpty() // 是否为空
val contains = list.contains("a") // 是否包含元素
val index = list.indexOf("b") // 元素索引
val element = list[1] // 获取元素
遍历 List
kotlin
list.forEach { println(it) } // 遍历元素
list.forEachIndexed { index, element -> println("$index: $element") } // 带索引遍历
过滤和转换
kotlin
val filtered = list.filter { it > 2 } // 过滤
val mapped = list.map { it * 2 } // 转换
val flatMapped = list.flatMap { listOf(it, it + 1) } // 扁平化转换
排序
kotlin
val sorted = list.sorted() // 自然排序
val sortedDesc = list.sortedDescending() // 降序排序
val customSorted = list.sortedBy { it.length } // 自定义排序
查找
kotlin
val first = list.first() // 第一个元素
val last = list.last() // 最后一个元素
val firstMatch = list.first { it > 2 } // 第一个匹配条件的元素
val anyMatch = list.any { it > 2 } // 是否有元素匹配条件
val allMatch = list.all { it > 2 } // 是否所有元素都匹配条件
可变 List 操作
kotlin
mutableList.add("d") // 添加元素
mutableList.add(1, "x") // 在指定位置插入
mutableList.remove("a") // 移除元素
mutableList.removeAt(0) // 移除指定位置元素
mutableList[0] = "A" // 修改元素
mutableList.clear() // 清空列表
Map 常用功能
创建 Map
kotlin
val immutableMap = mapOf("a" to 1, "b" to 2) // 不可变Map
val mutableMap = mutableMapOf("x" to 10, "y" to 20) // 可变Map
val emptyMap = emptyMap<String, Int>() // 空Map
基本操作
kotlin
val size = map.size // 获取大小
val isEmpty = map.isEmpty() // 是否为空
val containsKey = map.containsKey("a") // 是否包含键
val containsValue = map.containsValue(1) // 是否包含值
val value = map["a"] // 获取值
val keys = map.keys // 所有键
val values = map.values // 所有值
val entries = map.entries // 所有键值对
遍历 Map
kotlin
map.forEach { (key, value) -> println("$key -> $value") } // 遍历键值对
map.keys.forEach { println(it) } // 遍历键
map.values.forEach { println(it) } // 遍历值
过滤和转换
kotlin
val filtered = map.filter { (key, value) -> value > 10 } // 过滤
val mapped = map.map { (key, value) -> "$key:${value * 2}" } // 转换
val mapKeys = map.mapKeys { it.key.uppercase() } // 转换键
val mapValues = map.mapValues { it.value * 2 } // 转换值
查找
kotlin
val value = map.getOrDefault("c", 0) // 获取值或默认值
val valueOrNull = map["c"] // 获取值或null
val firstEntry = map.entries.first() // 第一个键值对
可变 Map 操作
kotlin
mutableMap["c"] = 30 // 添加/修改值
mutableMap.put("d", 40) // 添加键值对
mutableMap.remove("a") // 移除键值对
mutableMap.putAll(mapOf("e" to 50, "f" to 60)) // 添加多个键值对
mutableMap.clear() // 清空Map
特殊操作
kotlin
val mergedMap = map1 + map2 // 合并两个Map
val minusMap = map - "a" // 移除指定键
val defaultMap = map.withDefault { 0 } // 带默认值的Map
val groupBy = list.groupBy { it.first() } // 按条件分组
val associateBy = list.associateBy { it.id } // 列表转Map
实用扩展函数
List 实用扩展
kotlin
list.take(2) // 取前n个元素
list.drop(2) // 丢弃前n个元素
list.chunked(3) // 分块
list.windowed(3) // 滑动窗口
list.zip(otherList) // 合并两个列表
list.partition { it > 2 } // 分区
Map 实用扩展
kotlin
map.filterKeys { it.startsWith("a") } // 过滤键
map.filterValues { it > 10 } // 过滤值
map.toSortedMap() // 排序的Map
map.minByOrNull { it.value } // 找最小值
map.maxByOrNull { it.value } // 找最大值
这些功能覆盖了 Kotlin 中 List 和 Map 的大部分常见操作,能够满足日常开发中的各种需求。