首页 > 解决方案 > 根据 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")))

怎样才能做到这一点?

标签: kotlin

解决方案


使用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")))

推荐阅读