将匹配和非匹配元素过滤为元组的不同部分

Law*_*eld 1 scala scala-collections

有没有一种简单有效的方法在Scala中执行以下操作?

val elements = List(1, 2, 3, 4, 5, 6)
val (odd, even) = elements.filter(_ % 2 == 0)
Run Code Online (Sandbox Code Playgroud)

我知道groupBy,但我想要的东西适用于可以提取为单独值的恒定数量的组.

gzm*_*zm0 5

List.partition 做你想要的:

val (even, odd) = elements.partition(_ % 2 == 0)
Run Code Online (Sandbox Code Playgroud)

请注意,它仅适用于两个最终组.