在Scala中是否有一种简单的方法可以将某些事物的序列序列(等等)的嵌套序列展平或“取消列表”到这些事物的简单序列中,而没有任何嵌套结构?
答案 0 :(得分:3)
我认为没有一种flatten`方法可以将深度嵌套转换为序列。
很容易编写一个简单的递归函数来执行此操作
def flatten(ls: List[Any]): List[Any] = ls flatMap {
case ms: List[_] => flatten(ms)
case e => List(e)
}
val a = List(List(List(1, 2, 3, 4, 5)),List(List(1, 2, 3, 4, 5)))
flatten(a)
//> res0: List[Any] = List(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)