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']
相关推荐
程序大视界几秒前
【C++ 从基础到项目实战】C++(五):类与对象基础——构造、析构与访问控制
开发语言·c++·cpp
代码中介商1 分钟前
掌握C++ std::bind:参数绑定与灵活调用
开发语言·c++
拽着尾巴的鱼儿6 分钟前
Java 对象的深拷贝和浅拷贝
java·开发语言
韩曙亮20 分钟前
【错误记录】flutter attach 附加设备 执行报错 ( 附加设备注意事项 )
android·javascript·flutter·flutter attach
fie888922 分钟前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab
skywalk816330 分钟前
请结合以下说明,先完成类似python的内置函数。 然后再去完成内置库(标准款) ‌内置函数‌
开发语言·python
我不是懒洋洋41 分钟前
手写一个异步日志库:从printf到高性能无锁日志
java·c语言·开发语言·c++·visual studio
郝学胜-神的一滴41 分钟前
Python 高级编程 018:深挖 super
开发语言·python·程序人生·软件构建
hoiii18744 分钟前
基于MATLAB实现Lamb波频散曲线求解
开发语言·matlab
李少兄44 分钟前
Java 工程化基石:标准目录结构与 META-INF 元信息机制
java·开发语言