番石榴的贡献者在这里。
嗯,有什么要说的?所有基于散列(和基于枚举)的集合都具有恒定时间的单项操作,完全符合您的期望。(
HashMultiset,
linkedHashMultiset,
ConcurrentHashMultiset,
HashBiMap,
HashbasedTable,
ImmutableSet,
ImmutableMap,
EnumMultiset,
EnumBiMap,等等都属于这一类。)所有基于树/分类收藏有他们的单次入境的操作,包括对数时间
TreeMultiset,
ImmutableSortedMap和
ImmutableSortedSet。
好吧,在多地图中,文档基本上告诉您
Map和值收集的实现,您可以从那里弄清楚。
HashMultimap基本上是a
HashMap到
HashSets,
linkedHashMultimap是a
linkedHashMap到
linkedHashSets,
ArrayListMultimap是a
HashMap到
ArrayLists,
linkedListMultimap是a
linkedHashMap到
linkedLists(性能方面,如果从技术上讲不是真的),
TreeMultimap是a
TreeMap到
TreeSets,
ImmutableSetMultimap是a
ImmutableMap到
ImmutableSets,
ImmutableListMultimap是a
ImmutableMap到
ImmutableLists。
唯一可能不言而喻的事情可能是
SortedMultiset实现提供
subMultiset().size()了
O(logn)及时的操作,而您不能仅使用JDK进行操作
TreeMap<E, Integer>。
集合的所有视图(我们非常喜欢视图)会在恒定时间内返回并具有您期望的渐近性。
您还有其他更具体的问题吗?
(一般来说,Guava基本上是Google在生产中使用的核心库,我想认为这是有力的证据,证明这些实用程序在重载环境中的性能令人满意。此外,Guava也在不断改进,您可以获得这些改进。基本上是免费的。)



