Насколько эффективна библиотека Guava?

Я прошел через библиотеку Google Guava и нашел в ней много хороших, удобных в использовании структур данных.

Если кто-то еще использовал его, вы можете предоставить отзыв о том, как он выполняется при использовании с огромными наборами данных? В основном я ищу ноту BigO для своих операций.

Заранее спасибо

Ответ 1

Гуава здесь.

Ум, что там сказать? Все коллекции, основанные на хэш (и на основе enum), имеют однократные операции в постоянное время, точно так же, как вы ожидали. (HashMultiset, LinkedHashMultiset, ConcurrentHashMultiset, HashBiMap, HashBasedTable, ImmutableSet, ImmutableMap, EnumMultiset, EnumBiMap и т.д. все относятся к этой категории.) Все древовидные/отсортированные коллекции имеют логарифмическое время для их однократных операций, включая TreeMultiset, ImmutableSortedMap и ImmutableSortedSet.

Среди мультикадров, ну, в документации в основном говорится об Map и реализациях набора значений, и вы можете понять это оттуда. HashMultimap в основном a HashMap to HashSet s, LinkedHashMultimap составляет от LinkedHashMap до LinkedHashSet s, ArrayListMultimap составляет от HashMap до ArrayList s, LinkedListMultimap является a LinkedHashMap to LinkedList (по производительности, если не технически верно), TreeMultimap - это TreeMap to TreeSet s, ImmutableSetMultimap - от ImmutableMap до ImmutableSet s, ImmutableListMultimap - это ImmutableMap до ImmutableList s.

Единственное, что может быть не очевидным, вероятно, состоит в том, что реализации SortedMultiset предоставляют операции subMultiset().size() в O(log n) времени, что вы не могли бы сделать только с JDK TreeMap<E, Integer>.

Все виды коллекций (нам нравятся виды) возвращаются в постоянное время и имеют асимптотику, которую вы ожидаете.

Есть ли что-то более конкретное, о чем вас беспокоило?

(В целом, Guava - это, в основном, основные библиотеки, которые Google использует в производстве, и я бы хотел подумать, что это довольно убедительные доказательства того, что утилиты работают удовлетворительно в тяжелых условиях. Кроме того, Guava постоянно совершенствуется, и вы получить эти улучшения в основном бесплатно.)