Contribuyente de guayaba aquí.
Um, ¿qué hay para decir? Todas las colecciones basadas en hash (y enum) tienen operaciones de entrada única en tiempo constante, exactamente como era de esperar. (HashMultiset
, LinkedHashMultiset
, ConcurrentHashMultiset
, HashBiMap
, HashBasedTable
, ImmutableSet
, ImmutableMap
, EnumMultiset
, EnumBiMap
, etc. todos caen en esa categoría.) Todas las colecciones basadas en árboles/ordenada logarítmica tiene tiempo para sus operaciones de una sola entrada, incluyendo TreeMultiset
, ImmutableSortedMap
, y ImmutableSortedSet
.
Entre multimaps, bueno, la documentación básicamente le dice Map
y las implementaciones de recopilación de valores, y puede averiguarlo desde allí. HashMultimap
es básicamente un HashMap
a HashSet
s, LinkedHashMultimap
es un LinkedHashMap
a LinkedHashSet
s, ArrayListMultimap
es un HashMap
a ArrayList
s, LinkedListMultimap
es un LinkedHashMap
a LinkedList
s (en cuanto al rendimiento, si no es técnicamente cierto), TreeMultimap
es un TreeMap
a TreeSet
s , ImmutableSetMultimap
es un ImmutableMap
a ImmutableSet
s, ImmutableListMultimap
es un ImmutableMap
a ImmutableList
s.
La única cosa que podría no ser evidente por sí mismo es, probablemente, que los SortedMultiset
implementaciones proporcionan subMultiset().size()
operaciones en O(log n)
tiempo, lo que no se podía hacer sólo con un JDK TreeMap<E, Integer>
.
Todas las vistas de las colecciones (nos gustan mucho las vistas) regresan en tiempo constante y tienen las asintóticas que esperarías.
¿Hay algo más específico que le preocupe?
(En general, Guava es básicamente el núcleo de las bibliotecas que Google usa en producción, lo que me gustaría considerar una evidencia bastante sólida de que las utilidades funcionan satisfactoriamente en entornos de trabajo pesado. Además, se mejora constantemente, y obtienes esas mejoras básicamente gratis.)
¿Qué rendimiento de funcionamiento estás buscando específicamente? –
La biblioteca de Guava es grande. ¿Qué operaciones estás mirando en particular? – Perception
Sería genial proporcionar como gráfico la nueva operación de Colecciones (MultiSet, Multimap, BiMap, Table). Como en la colección java [Notación BigO] (http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-big-o-notation/). –