Квартира список на основе имущества в Котлин - PullRequest
0 голосов
/ 31 мая 2019

У меня есть список пользовательских объектов, которые выглядят следующим образом:

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 Ответ

1 голос
/ 31 мая 2019

Используйте 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")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...