13 java performance big-o guava data-structures
我已经浏览了Google Guava库,并在其中创建了许多优秀,可用的数据结构.
如果其他人使用过它,那么你可以提供有关它与大数据集一起使用时的表现的反馈吗?基本上我正在为其运营寻找BigO表示法.
提前致谢
Lou*_*man 37
番石榴贡献者在这里.
嗯,有什么可说的?所有基于散列的(和基于枚举的)集合都具有恒定时间的单项操作,完全符合您的预期.(HashMultiset,LinkedHashMultiset,ConcurrentHashMultiset,HashBiMap,HashBasedTable,ImmutableSet,ImmutableMap,EnumMultiset,EnumBiMap,等等都属于这一类.)所有基于树/排序收藏有他们的单次入境的操作,包括对数时间TreeMultiset,ImmutableSortedMap和ImmutableSortedSet.
在multimaps中,文档基本上告诉你Map和值集合实现,你可以从那里弄清楚. HashMultimap基本上是一个HashMap以HashSetS,LinkedHashMultimap是一个LinkedHashMap以LinkedHashSetS,ArrayListMultimap是一个HashMap以ArrayListS,LinkedListMultimap是一个LinkedHashMap以LinkedListS(性能明智的,如果不是技术上是真实的),TreeMultimap是一个TreeMap以TreeSetS,ImmutableSetMultimap是一个ImmutableMap以ImmutableSetS,ImmutableListMultimap是一个ImmutableMap以ImmutableList秒.
唯一不可能不言而喻的可能是SortedMultiset实现提供subMultiset().size()了O(log n)及时的操作,而JDK无法做到这一点TreeMap<E, Integer>.
集合的所有视图(我们都喜欢很多视图)会在不变的时间内返回并具有您期望的渐近线.
有没有更具体的你关注的?
(一般来说,Guava基本上是Google在生产中使用的核心库,我想这是非常有力的证据表明公用事业在重型环境中表现令人满意.另外,Guava正在不断改进,你会得到这些改进基本上是免费的.)
| 归档时间: |
|
| 查看次数: |
7503 次 |
| 最近记录: |