【发布时间】:2018-10-28 23:09:59
【问题描述】:
给定一个复杂的对象,如下所示:
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()),
)
您对我如何实现这一点有任何线索/想法吗?
我尝试过的其他解决方案似乎只做简单的列表嵌套。 我尝试过的事情:
- How does this recursive List flattening work?
- Generic, type-safe way to flatten arbitrarily nested collections in Scala?
这些似乎都产生了与我开始时相同的列表。
【问题讨论】:
-
在我测试我的解决方案的时间里,这个页面中出现的单词
flat的次数已经增加到 32。:-)