我对Multiset的理解是一个有频率的集合,但我总是可以用Map来表示频率,还有其他原因吗?
ycl3bljg1#
Multiset<E>相对于Map<E, Integer>的优势:
Multiset<E>
Map<E, Integer>
count(E)
add(E, int)
另见:Multiset JavadocGuavaWiki中解释的多重集
hgncfbus2#
对我来说,将Multiset与Map区分开来的最重要的一点是它是一个Collection:你只需要把东西放进去,然后你就可以得到计数了。它在概念上适合它设计的用例,而Map不适合。对于那些用例,Map只是一个hack,kinda-sorta工作正常,因为Java没有提供任何更合适的东西。
Multiset
Map
Collection
2条答案
按热度按时间ycl3bljg1#
Multiset<E>
相对于Map<E, Integer>
的优势:count(E)
、add(E, int)
等。Multiset<E>
显然将元素Map到它们的计数,而Map<E, Integer>
可以将元素Map到任意整数。另见:
Multiset Javadoc
GuavaWiki中解释的多重集
hgncfbus2#
对我来说,将
Multiset
与Map
区分开来的最重要的一点是它是一个Collection
:你只需要把东西放进去,然后你就可以得到计数了。它在概念上适合它设计的用例,而Map
不适合。对于那些用例,Map
只是一个hack,kinda-sorta工作正常,因为Java没有提供任何更合适的东西。