Guava Mitwirkende hier.
Ähm, was gibt es zu sagen? Alle Hash-basierten (und Enum-basierten) Sammlungen haben die Single-Entry-Operationen in konstanter Zeit, genau wie Sie es erwarten. (HashMultiset
, LinkedHashMultiset
, ConcurrentHashMultiset
, HashBiMap
, HashBasedTable
, ImmutableSet
, ImmutableMap
, EnumMultiset
, EnumBiMap
usw. fallen in diese Kategorie.) Alle Baum-basierte/sortierten Sammlungen haben logarithmische Zeit für ihre einströmige Operationen, einschließlich TreeMultiset
, ImmutableSortedMap
, und ImmutableSortedSet
.
Unter Multimaps, die Dokumentation im Grunde teilt Ihnen die Map
und die Wert-Sammlung Implementierungen, und Sie können es von dort herausfinden. HashMultimap
ist im Grunde ein HashMap
zu HashSet
s, LinkedHashMultimap
ein LinkedHashMap
-LinkedHashSet
s ist, ArrayListMultimap
ein HashMap
zu ArrayList
s ist, LinkedListMultimap
ein LinkedHashMap
-LinkedList
s (Performance-weise, wenn technisch nicht wahr), TreeMultimap
ist ein TreeMap
-TreeSet
s ImmutableSetMultimap
ist ein ImmutableMap
bis ImmutableSet
s, ImmutableListMultimap
ist ein ImmutableMap
bis ImmutableList
s.
Das einzige, was nicht selbstverständlich sein könnte, ist wahrscheinlich, dass die SortedMultiset
Implementierungen subMultiset().size()
Operationen in O(log n)
Zeit zur Verfügung stellen, die Sie nicht nur mit einem JDK TreeMap<E, Integer>
tun könnten.
Alle Ansichten von Sammlungen (wir mögen Ansichten viel) Rückkehr in konstanter Zeit und haben die Asymptotik, die Sie erwarten würden.
Gibt es etwas Spezieller, worüber Sie besorgt waren?
(Im Allgemeinen ist Guava im Grunde die Kernbibliotheken, die Google in der Produktion verwendet, was ich glaube, ist ein ziemlich starker Beweis dafür, dass die Utilities in stark beanspruchten Umgebungen zufriedenstellend funktionieren. Darüber hinaus wird Guava ständig verbessert und Sie erhalten diese Verbesserungen grundsätzlich kostenlos.)
Welche Betriebsleistung suchen Sie speziell? –
Die Guava-Bibliothek ist groß. Welche Operationen betrachten Sie besonders? – Perception
Es wäre toll, als Diagramm neue Sammlungen (MultiSet, Multimap, BiMap, Tabelle) bereitzustellen. Wie in Java Sammlung [BigO Notation] (http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-big-o-notation/). –