Учитывая сложный объект, подобный следующему:
case class Complex
(
id: Long,
name: String,
nested: Seq[Complex]
)
В действии это может превратиться в нечто подобное:
val stuff =
List(
Complex(1, "name1",
List(
Complex(2, "name2", List()),
Complex(3, "name3",
List(
Complex(4, "name4", List())
)
)
)
)
)
Мне нужно превратить его в плоский список из Complex
объектов, подтянув вверх всех детей/внуков.
val flattened =
List(
Complex(1, "name1", List()),
Complex(2, "name2", List()),
Complex(3, "name3", List()),
Complex(4, "name4", List()),
)
Есть ли у вас какие-либо выводы / идеи о том, как я могу это сделать?
Другие решения, которые я пробовал, похоже, делают только простое вложение списков. Что я пробовал:
- Как работает это рекурсивное выравнивание списка?
- Общий типобезопасный способ сглаживания произвольно вложенных коллекции в Scala?
Кажется, все они приводят к тому же списку, с которого я начал.
flat
на этой странице выросло до 32. :-) - person stefanobaghino   schedule 18.05.2018