【发布时间】:2013-03-29 04:51:56
【问题描述】:
我想将 Traversable[T] 转换为带有计数的 Map[T, Int] 直方图。我希望结果是一个不可变的 Map ,它与我所做的事情相匹配:
traversable.groupBy(_).mapValues(_.length)
但看起来这在空间或时间方面效率不高......因为groupBy 维护对可遍历对象中每个元素的引用,这在具有少量唯一键的大型可遍历对象上表现不佳。我真的想要更多这样的东西:
def histogram[T](ts : Traversable[T]) : Map[T, Int] = {
val map = new collection.mutable.HashMap[T, Int].withDefaultValue(0)
ts.foreach { map(_) += 1 }
map.toMap
}
有没有一种库方法可以给我这个结果(理想情况下,可以很好地与并行集合一起使用)?
【问题讨论】:
-
默认情况下没有任何内容,为了简洁明了,您的内容与任何内容一样好。