我有一个自定义对象列表,如下所示:
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")))
如何实现?
答案 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")))