小编iTs*_*aMe的帖子

展平 Scala 中的嵌套对象

给定一个如下所示的复杂对象:

case class Complex
(
  id: Long,
  name: String,
  nested: Seq[Complex]
)
Run Code Online (Sandbox Code Playgroud)

在实际操作中,这可能会变成这样:

val stuff =
  List(
    Complex(1, "name1",
      List(
        Complex(2, "name2", List()),
        Complex(3, "name3",
          List(
            Complex(4, "name4", List())
          )
        )
      )
    )
  )
Run Code Online (Sandbox Code Playgroud)

我需要将其变成一个平面Complex对象列表,将所有子/孙子拉起来。

val flattened =
  List(
    Complex(1, "name1", List()),
    Complex(2, "name2", List()),
    Complex(3, "name3", List()),
    Complex(4, "name4", List()),
  )
Run Code Online (Sandbox Code Playgroud)

您对我如何实现这一目标有任何线索/想法吗?

我尝试过的其他解决方案似乎只做简单的列表嵌套。我尝试过的事情:

这些似乎都产生了与我开始时相同的列表。

scala flatten flatmap

2
推荐指数
1
解决办法
2543
查看次数

标签 统计

flatmap ×1

flatten ×1

scala ×1