目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 windows js win10 springboot pdf idea docker 电路 nginx esp32 macOS git vue Arduino maven ffmpeg

存档:

X

kotlin语法糖介绍

kotlin于Java相比优势自然是语法糖

一、创建与初始化

方法功能简述
listOf()创建不可变列表
mutableListOf()创建可变列表
emptyList()创建空列表
List(size) { initFunction }创建指定大小并用函数初始化的列表

二、元素访问

方法功能简述
get(index) / [index]获取指定位置元素
first()获取第一个元素
last()获取最后一个元素
elementAt(index)获取指定位置元素
elementAtOrElse(index) { defaultValue }安全获取元素,越界返回默认值
elementAtOrNull(index)安全获取元素,越界返回null
indexOf(element)返回元素首次出现的索引
lastIndexOf(element)返回元素最后一次出现的索引
indexOfFirst { predicate }返回第一个满足条件的元素索引
indexOfLast { predicate }返回最后一个满足条件的元素索引

三、元素操作

方法功能简述
contains(element)检查是否包含元素
containsAll(collection)检查是否包含所有指定元素
isEmpty()检查列表是否为空
isNotEmpty()检查列表是否非空
subList(from, to)获取子列表
slice(indices)按索引集合获取子列表

四、遍历操作

方法功能简述
forEach { action }对每个元素执行操作
forEachIndexed { index, element -> action }带索引的遍历
onEach { action }遍历并返回原列表(可用于链式调用)
iterator()返回列表迭代器

五、转换操作

方法功能简述
map { transform }转换每个元素
mapIndexed { index, element -> transform }带索引的转换
mapNotNull { transform }转换并过滤null结果
flatMap { transform }转换每个元素为集合后扁平化
flatten()扁平化嵌套集合
zip(otherList)两个列表合并为Pair列表
unzip()Pair列表分解为两个列表
joinToString()将列表转为字符串
toSet()转换为Set
toMutableList()转换为可变列表

六、过滤操作

方法功能简述
filter { predicate }过滤满足条件的元素
filterNot { predicate }过滤不满足条件的元素
filterIndexed { index, element -> predicate }带索引的过滤
filterIsInstance<T>()过滤指定类型元素
filterNotNull()过滤null元素
take(n)取前n个元素
takeLast(n)取最后n个元素
takeWhile { predicate }取满足条件的连续元素
drop(n)丢弃前n个元素
dropLast(n)丢弃最后n个元素
dropWhile { predicate }丢弃满足条件的连续元素
distinct()去除重复元素
distinctBy { selector }根据选择器去除重复元素

七、排序操作

方法功能简述
sorted()自然排序
sortedBy { selector }根据选择器排序
sortedDescending()自然逆序排序
sortedByDescending { selector }根据选择器逆序排序
reversed()反转列表顺序
shuffle()随机打乱顺序

八、聚合操作

方法功能简述
any()判断是否至少有一个元素
any { predicate }判断是否至少有一个元素满足条件
all { predicate }判断所有元素是否满足条件
none()判断是否没有元素
none { predicate }判断是否没有元素满足条件
count()返回元素总数
count { predicate }返回满足条件的元素数量
sum()数值列表求和
sumBy { selector }根据选择器求和
average()数值列表求平均值
min()返回最小元素
max()返回最大元素
minBy { selector }根据选择器返回最小值
maxBy { selector }根据选择器返回最大值
reduce { acc, element -> operation }累积操作
reduceIndexed { index, acc, element -> operation }带索引的累积
fold(initial) { acc, element -> operation }带初始值的累积
foldIndexed(initial) { index, acc, element -> operation }带索引和初始值的累积

九、可变列表特有操作

方法功能简述
add(element)添加元素
add(index, element)在指定位置插入元素
addAll(collection)添加多个元素
remove(element)移除指定元素
removeAt(index)移除指定位置元素
removeAll(collection)移除多个元素
retainAll(collection)保留指定元素
clear()清空列表
set(index, element)设置指定位置元素
fill(element)用指定值填充整个列表
replaceAll { transform }替换所有元素
sort()原地排序
sortBy { selector }根据选择器原地排序
reverse()原地反转

十、分组与分区

方法功能简述
groupBy { keySelector }按选择器分组
groupingBy { keySelector }创建分组源
partition { predicate }根据条件分区为两个列表
chunked(size)将列表分割为指定大小的块
windowed(size)滑动窗口获取子列表

这些方法使得 Kotlin 的列表操作非常强大且表达力强,可以轻松处理各种集合操作需求。


标题:kotlin语法糖介绍
作者:llilei
地址:http://solo.llilei.work/articles/2025/06/16/1750081729628.html