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

相关推荐
疏狂难除5 小时前
JetBrains IDE插件开发教程(五)——File Header
ide·kotlin
Kapaseker15 小时前
Android CLI 完全指南
android·kotlin
Coffeeee2 天前
Android功耗优化,哪些代码会让你的机子发热又耗电
android·架构·kotlin
Android打工仔2 天前
Kotlin 编译器是如何把 suspend 函数变成状态机的?
kotlin
Android打工仔2 天前
一个 suspend 函数,为什么会变成一个普通函数?
kotlin
苦瓜花2 天前
【Kotlin】初入门
android·开发语言·kotlin
Kapaseker3 天前
Rust 是如何处理异常的
rust·kotlin
冬日砥砺前行3 天前
Kotlin 协程:几个曾经被我误解的点
kotlin
plainGeekDev4 天前
libs 目录 → Gradle 依赖管理
android·java·kotlin
监督者修5 天前
从零构建 GIS 数据引擎:方案驱动架构的设计与实践
android·架构·kotlin