【发布时间】:2016-07-17 21:20:50
【问题描述】:
我现在正在阅读 Twitter 的 Scala School,并且正在查看 groupBy 和 partition 集合方法。而且我不确定这两种方法之间的区别是什么。
我自己做了一些测试:
scala> List(1, 2, 3, 4, 5, 6).partition(_ % 2 == 0)
res8: (List[Int], List[Int]) = (List(2, 4, 6),List(1, 3, 5))
scala> List(1, 2, 3, 4, 5, 6).groupBy(_ % 2 == 0)
res9: scala.collection.immutable.Map[Boolean,List[Int]] = Map(false -> List(1, 3, 5), true -> List(2, 4, 6))
这是否意味着partition 返回一个包含两个列表的列表,而groupBy 返回一个带有布尔键和列表值的 Map?两者都具有根据条件将列表分成两个不同部分的相同“效果”。我不确定为什么我会使用其中一个。那么,我什么时候可以使用partition 而不是groupBy,反之亦然?
【问题讨论】:
标签: scala