为什么Google Collections中没有SortedMultiset?

时间:2009-08-25 21:40:30

标签: java guava

Google Collections包含Multiset接口和TreeMultiset类,但我很惊讶地发现没有相应的SortedMultiset接口。

这样的东西对于建立离散概率分布非常有用。

在我尝试自己实施之前,我想知道是否有特定的理由将其遗漏,例如可能违反MultisetCollection不变量,或固有的性能问题等。


编辑:我最初没有意识到这一点,但这实际上是3个单独的请求:

  1. 更改一种方法(TreeMultiset.entrySet
  2. 的返回类型
  3. TreeMultiset
  4. 的现有功能相匹配的新界面
  5. 一对新的方法,用于对树的分支中的计数求和

2 个答案:

答案 0 :(得分:7)

我认为只是没有人需要它,所以我们还没有写它。这是我考虑的事情。

答案 1 :(得分:0)

TreeMultiset.elementSet()返回一个SortedSet,它可能提供您想要的一些功能。

ETA:finnw,您要求的SortedMultiset方法无法为“我的Multiset中有多少元素小于42?”这一问题提供明显更快的答案。 TreeMultiset实现仍然必须迭代多个集条目并总结相关元素的计数。