java – 性能方面,Guava库有多好?
作者:互联网
我已经浏览了Google Guava库,并在其中创建了许多好的,可用的数据结构.
如果有其他人使用过它,那么你可以提供有关它与大数据集一起使用时的表现的反馈吗?基本上我正在为其运营寻找BigO表示法.
提前致谢
解决方法:
番石榴贡献者在这里.
嗯,有什么可说的?所有基于散列的(和基于枚举的)集合都具有恒定时间的单项操作,完全符合您的预期. (HashMultiset,LinkedHashMultiset,ConcurrentHashMultiset,HashBiMap,HashBasedTable,ImmutableSet,ImmutableMap,EnumMultiset,EnumBiMap等都属于该类别.)所有基于树的/已排序的集合都具有对数时间操作的对数时间,包括TreeMultiset,ImmutableSortedMap,和ImmutableSortedSet.
在multimaps中,文档基本上告诉你Map和value-collection实现,你可以从中找出它. HashMultimap基本上是一个HashMap到HashSets,LinkedHashMultimap是一个LinkedHashMap到LinkedHashSets,ArrayListMultimap是一个HashMap到ArrayLists,LinkedListMultimap是一个LinkedHashMap到LinkedLists(性能方面,如果不是技术上真的),TreeMultimap是TreeMap到TreeSet,ImmutableSetMultimap是一个ImmutableMap对于ImmutableSets,ImmutableListMultimap是ImmutableLists的ImmutableMap.
唯一不可能不言而喻的是,SortedMultiset实现可能在O(log n)时间内提供subMultiset().size()操作,这是JDK TreeMap< E,Integer>所不能做到的.
集合的所有视图(我们都喜欢很多视图)会在不变的时间内返回并具有您期望的渐近线.
有没有更具体的你关注的?
(一般来说,Guava基本上是Google在生产中使用的核心库,我想这是非常有力的证据表明公用事业在重型环境中表现令人满意.另外,Guava正在不断改进,你会得到这些改进基本上是免费的.)
标签:java,performance,data-structures,big-o,guava 来源: https://codeday.me/bug/20191004/1854429.html