技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • 基础入门

    • Kotlin 教程
    • 快速开始
    • 基础语法
    • 变量与类型
    • 控制流
    • 函数
  • 面向对象

    • 类与对象
  • 高级特性

    • 泛型
    • 集合操作
    • 协程

集合操作

List

// 只读列表
val list = listOf(1, 2, 3, 4, 5)

// 可变列表
val mutableList = mutableListOf(1, 2, 3)
mutableList.add(4)
mutableList.removeAt(0)

// 访问
val first = list[0]
val last = list.last()

Set

// 只读集合
val set = setOf(1, 2, 3, 2)  // [1, 2, 3]

// 可变集合
val mutableSet = mutableSetOf(1, 2, 3)
mutableSet.add(4)
mutableSet.remove(1)

Map

// 只读映射
val map = mapOf("a" to 1, "b" to 2, "c" to 3)

// 可变映射
val mutableMap = mutableMapOf("a" to 1)
mutableMap["b"] = 2
mutableMap.remove("a")

// 访问
val value = map["a"]
val valueOrDefault = map.getOrDefault("d", 0)

常用操作

转换

val numbers = listOf(1, 2, 3, 4, 5)

// map
val doubled = numbers.map { it * 2 }  // [2, 4, 6, 8, 10]

// flatMap
val nested = listOf(listOf(1, 2), listOf(3, 4))
val flattened = nested.flatMap { it }  // [1, 2, 3, 4]

// mapNotNull
val strings = listOf("1", "2", "a", "3")
val ints = strings.mapNotNull { it.toIntOrNull() }  // [1, 2, 3]

过滤

val numbers = listOf(1, 2, 3, 4, 5)

// filter
val evens = numbers.filter { it % 2 == 0 }  // [2, 4]

// filterNot
val odds = numbers.filterNot { it % 2 == 0 }  // [1, 3, 5]

// filterIndexed
val filtered = numbers.filterIndexed { index, value -> 
    index % 2 == 0 
}

聚合

val numbers = listOf(1, 2, 3, 4, 5)

// sum
val sum = numbers.sum()  // 15

// average
val avg = numbers.average()  // 3.0

// max/min
val max = numbers.maxOrNull()  // 5
val min = numbers.minOrNull()  // 1

// reduce
val product = numbers.reduce { acc, i -> acc * i }  // 120

// fold
val result = numbers.fold(10) { acc, i -> acc + i }  // 25

分组

val words = listOf("apple", "banana", "apricot", "berry")

// groupBy
val grouped = words.groupBy { it.first() }
// {a=[apple, apricot], b=[banana, berry]}

// partition
val (short, long) = words.partition { it.length < 6 }

排序

val numbers = listOf(3, 1, 4, 1, 5, 9)

// sorted
val sorted = numbers.sorted()  // [1, 1, 3, 4, 5, 9]

// sortedDescending
val desc = numbers.sortedDescending()

// sortedBy
val words = listOf("banana", "apple", "cherry")
val byLength = words.sortedBy { it.length }

序列

// 惰性求值
val sequence = sequenceOf(1, 2, 3, 4, 5)
    .filter { it % 2 == 0 }
    .map { it * 2 }
    .toList()

// 从集合创建
val seq = listOf(1, 2, 3).asSequence()
最近更新: 2026/2/24 16:53
Contributors: hailong
Prev
泛型
Next
协程