番石榴多集 vs 地图?

2022-09-02 19:59:04

我对Multiset的理解是一个有频率的集合,但是我总是可以用Map来表示频率,还有其他理由使用Multiset吗?


答案 1

a 相对于 a 的优点:Multiset<E>Map<E, Integer>

  • 添加集合中尚不存在的元素时,不需要特殊代码。
  • 直接处理元素计数的方法:、、等。count(E)add(E, int)
  • 代码的意图更清晰。a 显然,将元素映射到其计数。可以将元素映射到任意整数。Multiset<E>Map<E, Integer>

另请参阅:

多集 Javadoc

番石榴维基中解释的多集


答案 2

对我来说,与a区分开来的最重要一点是:你只需把东西放进去,以后就可以得到计数。从概念上讲,它适合于它所设计的用例,而 a 则不然。对于这些用例,a只是一个有点工作的黑客,因为Java没有提供更合适的东西。MultisetMapCollectionMapMap


推荐