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

相关推荐
&岁月不待人&3 小时前
实现弹窗随键盘上移居中
java·kotlin
移动开发者1号8 小时前
Android Activity状态保存方法
android·kotlin
移动开发者1号8 小时前
Volley源码深度分析与设计亮点
android·kotlin
移动开发者1号1 天前
App主界面点击与跳转启动方式区别
android·kotlin
移动开发者1号1 天前
我用Intent传大图片时竟然崩了,怎么回事啊
android·kotlin
androidwork2 天前
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
android·java·kotlin·androidx
androidwork2 天前
OkHttp 3.0源码解析:从设计理念到核心实现
android·java·okhttp·kotlin
莉樱Yurin2 天前
Kotlin/CLR 让Kotlin走进.NET世界
kotlin
casual_clover2 天前
Android 之 kotlin 语言学习笔记四(Android KTX)
android·学习·kotlin
移动开发者1号2 天前
Android 大文件分块上传实战:突破表单数据限制的完整方案
android·java·kotlin