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']
相关推荐
张健115640964812 小时前
临界区和同一线程上锁
java·开发语言·jvm
Rytter12 小时前
某气骑士 libtprt.so 反 Frida 机制分析与绕过
android·安全·网络安全
头发够用的程序员13 小时前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试
夜猫逐梦13 小时前
【逆向经验】一篇文章讲透为什么CE搜不到Python游戏的内存值
开发语言·python·游戏
alexhilton13 小时前
揭密:Compose应用如何做到启动提升34%
android·kotlin·android jetpack
SilentSamsara13 小时前
闭包的本质:Python 如何捕获自由变量
开发语言·python·青少年编程·pycharm
十五年专注C++开发13 小时前
浅谈LLVM
开发语言·c++·qt·clang·llvm
白夜111714 小时前
C++(标签派发 Tag Dispatching)
开发语言·c++·笔记·算法
CSCN新手听安14 小时前
【Qt】Qt窗口(六)QMessageBox消息对话框的使用
开发语言·c++·qt
沐言人生15 小时前
React Native 源码分析1——HybridData 机制深度分析
android·react native