kotlin flatten 与 flatMap

kotln中 flattenflatMap 在 Kotlin 中虽然都用于扁平化处理集合,但它们的用法和效果并不完全一样

flatten

flatten 函数主要应用于嵌套集合(如 List of List 或 Set of Set 等),它会将嵌套集合中的所有元素合并到一个单一层次的集合中。

复制代码
val nestedList = listOf(listOf("a", "b"), listOf("c", "d"))
val flattenedList = nestedList.flatten() // ["a", "b", "c", "d"]

flatMap

flatMap 不仅可以将嵌套集合扁平化,更重要的是它允许你对每个子集合应用一个映射函数来生成新的元素。这个映射函数的结果应当是一个集合,然后这些结果集会被合并成一个新的集合

复制代码
val lists = listOf(listOf("hello"), listOf("world"))
val chars = lists.flatMap { it.map { it.toCharArray() } } // ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
相关推荐
Evand J3 分钟前
【MATLAB例程】自适应阈值的小波变换去噪,信号噪声:拉普拉斯噪声、脉冲噪声与高斯噪声|混合非高斯。附下载链接
开发语言·人工智能·matlab
全栈陈序员15 分钟前
【Python】基础语法入门(十八)——函数式编程初探:用 `map`、`filter`、`reduce` 和 `lambda` 写出更简洁的代码
开发语言·人工智能·python·学习
_李小白20 分钟前
【Android FrameWork】第二十九天:MediaPlayer和MediaRecorder
android
qq_4061761420 分钟前
JavaScript中的循环特点和区别
开发语言·javascript·ecmascript
我命由我1234525 分钟前
Python 开发 - OpenAI 兼容阿里云百炼平台 API
开发语言·人工智能·后端·python·阿里云·ai·语言模型
GokuCode29 分钟前
【GO高级编程】02.GO接收者概述
开发语言·后端·golang
Aotman_30 分钟前
JavaScript去除对象字段空格
开发语言·前端·javascript
casual_clover31 分钟前
【Android】通过 Paint 获取文本宽度、高度及行间距信息
android·文本字体宽高
云和数据.ChenGuang33 分钟前
Zabbix 6 与 PHP 5 版本**完全不兼容
运维·开发语言·php·zabbix·运维工程师