kotlin - 根据 Kotlin 中的属性整理列表
问题描述
我有一个自定义对象列表,如下所示:
listOf(MyItem(1, listOf("Aus","Ame")), MyItem(2, listOf("Cha", "Tel")))
MyItem 类:
data class MyItem(val num: Int, val list: List<String>)
code
我想根据类中的属性展开如下列表MyItem
:
listOf(MyItem(1, listOf("Aus")), MyItem(1, listOf("Ame")), MyItem(2, listOf("Cha")), MyItem(2, listOf("Tel")))
怎样才能做到这一点?
解决方案
使用flatMap
,然后另一个map
里面。
val input = listOf(MyItem(1, listOf("Aus","Ame")), MyItem(2, listOf("Cha", "Tel")))
val result = input.flatMap { item -> item.list.map { item.copy(list = listOf(it)) } }
println(result)
// listOf(MyItem(1, listOf("Aus")), MyItem(1, listOf("Ame")), MyItem(2, listOf("Cha")), MyItem(2, listOf("Tel")))
推荐阅读
- java - java.lang.NullPointerException Firebase
- c# - 为什么将 DBContext 放入 IMemoryCache (.NET Core / EF Core) 后被释放
- python-3.x - 在 Python 3 中将文件路径分配给变量
- ios - CoreTelephony - 在飞行模式下的运营商名称
- corda - 为什么在 Corda 关闭节点中设置序列化上下文?
- c# - 转换为 XML 时的 c# 类不显示元素
- c# - 使用 Visual C# 在 WPF 中更改交互式数据显示多图表中的线型
- c++ - 使用 typeid 警告未使用的变量
- javascript - 根据属性值限制数组中的对象
- javascript - 如何将 userextension js 文件添加到 Selenium IDE 3.4.4