性能方面,番石榴图书馆有多好?[已关闭]
我浏览了Google Guava库,并在其中发现了许多好的,可用的数据结构。
如果还有其他人使用它,那么您能否提供有关它在与大型数据集一起使用时的性能的反馈?基本上,我正在寻找BigO表示法用于其操作。
提前致谢
我浏览了Google Guava库,并在其中发现了许多好的,可用的数据结构。
如果还有其他人使用它,那么您能否提供有关它在与大型数据集一起使用时的性能的反馈?基本上,我正在寻找BigO表示法用于其操作。
提前致谢
番石榴贡献者在这里。
嗯,有什么可说的?所有基于哈希(和基于枚举)的集合都具有恒定时间的单条目操作,完全符合您的预期。(、、、、、、、、等都属于这一类。所有基于树/排序的集合都有其单条目操作的对数时间,包括 、 和 。HashMultiset
LinkedHashMultiset
ConcurrentHashMultiset
HashBiMap
HashBasedTable
ImmutableSet
ImmutableMap
EnumMultiset
EnumBiMap
TreeMultiset
ImmutableSortedMap
ImmutableSortedSet
在多映射中,文档基本上会告诉您值集合实现,您可以从那里找到它。 基本上是 a to s,是 a to s,是 a to s,是 a to s(性能方面,如果技术上不正确),是 a to s,是 a to s,是 a to s,是 a to s。Map
HashMultimap
HashMap
HashSet
LinkedHashMultimap
LinkedHashMap
LinkedHashSet
ArrayListMultimap
HashMap
ArrayList
LinkedListMultimap
LinkedHashMap
LinkedList
TreeMultimap
TreeMap
TreeSet
ImmutableSetMultimap
ImmutableMap
ImmutableSet
ImmutableListMultimap
ImmutableMap
ImmutableList
唯一可能不言自明的是,这些实现可能及时提供了操作,而仅用JDK是无法做到的。SortedMultiset
subMultiset().size()
O(log n)
TreeMap<E, Integer>
集合的所有视图(我们非常喜欢视图)都以恒定的时间返回,并具有您期望的渐近值。
你还有什么更具体的问题吗?
(总的来说,Guava基本上是Google在生产中使用的核心库,我认为这是非常有力的证据,证明实用程序在重型环境中的表现令人满意。此外,番石榴正在不断改进,你基本上可以免费获得这些改进。