为什么Google Collections中没有SortedMultiset?
Google Collections包含TreeMultiset
接口和TreeMultiset
类,但我很惊讶地发现没有相应的SortedMultiset
接口。
这样的东西对于建立离散概率分布非常有用。
在我尝试自己实现它之前,我想知道是否有一个特定的理由将其Multiset
,例如可能违反Multiset
或Collection
不变量,或者固有的性能问题等。
编辑 :我最初没有意识到这一点,但这实际上是3个单独的请求:
- 更改一个方法的返回类型(
TreeMultiset.entrySet
) - 一个新的接口,用于匹配
TreeMultiset
的现有function - 一对新方法,用于对树分支中的计数求和
我认为只是没有人需要它,所以我们还没有写它。 这是我考虑的事情。
TreeMultiset.elementSet()返回一个SortedSet,它可能提供您想要的一些function。
ETA:finnw,您要求的SortedMultiset方法无法为“我的Multiset中有多少元素小于42?”这一问题提供明显更快的答案。 TreeMultiset实现仍然必须迭代多个集条目并总结相关元素的计数。