【发布时间】:2012-01-14 07:13:48
【问题描述】:
我对Multiset的理解是一个有频率的集合,但是我总是可以用Map来表示频率,还有其他理由使用Multiset吗?
【问题讨论】:
我对Multiset的理解是一个有频率的集合,但是我总是可以用Map来表示频率,还有其他理由使用Multiset吗?
【问题讨论】:
Multiset<E> 相对于Map<E, Integer> 的优势:
count(E)、add(E, int)等Multiset<E> 显然将元素映射到它们的计数。 Map<E, Integer> 可以将元素映射到任意整数。另见:
【讨论】:
对我来说,将Multiset 与Map 区别开来的最重要的一点是它是Collection:您只需将内容放入其中,以后就可以进行计数。它在概念上适合 Map 不适合的用例。对于这些用例,Map 只是一种 hack,它可以正常工作,因为 Java 没有提供更合适的东西。
【讨论】: