根据科特林的财产整理清单

时间:2019-05-31 15:45:54

标签: 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")))

如何实现?

1 个答案:

答案 0 :(得分:1)

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