Kotlin集合全解析:List和Map高频操作手册

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 的大部分常见操作,能够满足日常开发中的各种需求。

相关推荐
alexhilton8 分钟前
深入理解Jetpack Compose中的函数的执行顺序
android·kotlin·android jetpack
前行的小黑炭7 小时前
Retrofit框架分析(二):注解、反射以及动态代理,Retrofit框架动态代理的源码分析
android·kotlin·retrofit
老码识土10 小时前
Kotlin 协程源代码泛读:Continuation 思想实验-2
android·kotlin
人生游戏牛马NPC1号10 小时前
学习Android(三)
android·kotlin
洛阳泰山13 小时前
LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
java·ai·语言模型·kotlin·交互·springboot·langchain4j
LCY1331 天前
spring security +kotlin 实现oauth2.0 认证
java·spring·kotlin
0wioiw01 天前
Kotlin基础(①)
android·开发语言·kotlin
张力尹1 天前
关于 MutableSharedFlow 的 tryEmit 和 emit 争议说法
android·面试·kotlin
老码识土1 天前
Kotlin 协程源代码泛读:Continuation 思想实验
android·kotlin