我有以下数组:
val input = Array(Array(), Array(22,33), Array(), Array(77), Array(88,99))
Run Code Online (Sandbox Code Playgroud)
它包含空数组。我想要一个没有任何空数组的扁平数组,因此输出应为:
Array(22,33,77,88,99)
Run Code Online (Sandbox Code Playgroud)
我尝试了该flatten功能,但似乎不适用于的类型Array[_ <: Int]。
另一种书写方式:
input.flatMap(_.toList)
Run Code Online (Sandbox Code Playgroud)
空数组将转换为Nils,因为它是一个flatMap,所以Nils会被展平
Monad是您的朋友:
for { a <- input; b <- a.toList } yield b
Run Code Online (Sandbox Code Playgroud)
编辑:如果您指定类型,flatten可以正常工作
val input: Array[Array[Int]] = Array(Array(), Array(22,33), Array(), Array(77), Array(88,99))
input.flatten
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |