Java 性能方面,番石榴库有多好?

Java 性能方面,番石榴库有多好?,java,performance,data-structures,big-o,guava,Java,Performance,Data Structures,Big O,Guava,我浏览了图书馆,发现了很多好的、可用的数据结构 如果其他人使用过它,那么您能否提供反馈,说明它在与大型数据集一起使用时的性能?基本上,我正在寻找它的操作的BigO符号 提前感谢这里的番石榴贡献者 嗯,有什么好说的?所有基于散列(和基于枚举)的集合都具有固定时间的单条目操作,这与您预期的完全一样。(HashMultiset,LinkedHashMultiset,ConcurrentHashMultiset,HashBiMap,HashBasedTable,ImmutableSet,EnumMult

我浏览了图书馆,发现了很多好的、可用的数据结构

如果其他人使用过它,那么您能否提供反馈,说明它在与大型数据集一起使用时的性能?基本上,我正在寻找它的操作的BigO符号


提前感谢这里的番石榴贡献者

嗯,有什么好说的?所有基于散列(和基于枚举)的集合都具有固定时间的单条目操作,这与您预期的完全一样。(
HashMultiset
LinkedHashMultiset
ConcurrentHashMultiset
HashBiMap
HashBasedTable
ImmutableSet
EnumMultiset
EnumBiMap
,等等,都属于这一类。)所有基于树的/排序的集合的单条目操作都有对数时间,包括
TreeMultiset
ImmutableSortedMap
、和
ImmutableSortedSet

在多重映射中,文档基本上告诉您
Map
和值集合实现,您可以从中找到答案
HashMultimap
基本上是
HashMap
to
HashSet
s,
LinkedHashMultimap
LinkedHashMap
to
LinkedHashSet
s,
ArrayListMultimap
HashMap
to
arrarylist
s,
LinkedListMultimap
是一个
LinkedHashMap
LinkedList
s(性能方面,如果技术上不正确),
TreeMultimap
是一个
TreeMap
TreeSet
s,
ImmutableSetMultimap
是一个
ImmutableMap到
ImmutableSet
s,
ImmutableListMultimap
是一个
ImmutableMap
ImmutableList
s的映射

唯一不明显的是,
SortedMultiset
实现在
O(logn)
时间内提供了
subMultiset().size()
操作,这是仅用JDK
TreeMap
无法做到的

集合的所有视图(我们非常喜欢视图)都以恒定时间返回,并具有您期望的渐近性

你有什么更具体的担心吗


(一般来说,Guava基本上是Google在生产中使用的核心库,我认为这是非常有力的证据,证明了这些实用程序在重载环境中的性能令人满意。此外,Guava正在不断改进,而这些改进基本上是免费的。)

您特别想要哪种操作性能?番石榴库很大。您特别关注哪些操作?最好提供一个新集合(MultiSet、Multimap、BiMap、Table)操作的图表。与java collection.Sumit类似,请参阅和,以获得更好地解释what.Meh支持哪种类型的表。我的意思是…这一切都不应该令人惊讶。当然,番石榴的首要任务之一是确保这些事情不会让人感到意外。。。