@ParametersAreNonnullByDefault
Package com.google.common.collect
This package contains generic collection interfaces and implementations, and
other utilities for working with collections. It is a part of the open-source
Guava libraries.
of
of
of
of
of
of
of
of
Collection Types
BiMap
- An extension of
Map
that guarantees the uniqueness of its values as well as that of its keys. This is sometimes called an "invertible map," since the restriction on values enables it to support an inverse view -- which is another instance ofBiMap
. Multiset
- An extension of
Collection
that may contain duplicate values like aList
, yet has order-independent equality like aSet
. One typical use for a multiset is to represent a histogram. Multimap
- A new type, which is similar to
Map
, but may contain multiple entries with the same key. Some behaviors ofMultimap
are left unspecified and are provided only by the subtypes mentioned below. ListMultimap
- An extension of
Multimap
which permits duplicate entries, supports random access of values for a particular key, and has partially order-dependent equality as defined byListMultimap.equals(Object)
.ListMultimap
takes its name from the fact that the collection of values associated with a given key fulfills theList
contract. SetMultimap
- An extension of
Multimap
which has order-independent equality and does not allow duplicate entries; that is, while a key may appear twice in aSetMultimap
, each must map to a different value.SetMultimap
takes its name from the fact that the collection of values associated with a given key fulfills theSet
contract. SortedSetMultimap
- An extension of
SetMultimap
for which the collection values associated with a given key is aSortedSet
. Table
- A new type, which is similar to
Map
, but which indexes its values by an ordered pair of keys, a row key and column key. ClassToInstanceMap
- An extension of
Map
that associates a raw type with an instance of that type.
Collection Implementations
of List
of Set
ImmutableSet
ImmutableSortedSet
ContiguousSet
(seeRange
)
of Map
ImmutableMap
ImmutableSortedMap
com.google.common.collect.MapMaker
of BiMap
of Multiset
ImmutableMultiset
HashMultiset
LinkedHashMultiset
TreeMultiset
EnumMultiset
com.google.common.collect.ConcurrentHashMultiset
of Multimap
ImmutableMultimap
ImmutableListMultimap
ImmutableSetMultimap
ArrayListMultimap
HashMultimap
TreeMultimap
LinkedHashMultimap
LinkedListMultimap
of Table
of ClassToInstanceMap
Classes of static utility methods
Collections2
Iterators
Iterables
Lists
Maps
com.google.common.collect.Queues
Sets
Multisets
Multimaps
Tables
ObjectArrays
Comparison
Abstract implementations
AbstractIterator
AbstractSequentialIterator
ImmutableCollection
UnmodifiableIterator
UnmodifiableListIterator
Ranges
Other
Interner
,com.google.common.collect.Interners
Constraint
,Constraints
MapConstraint
,MapConstraints
MapDifference
,SortedMapDifference
MinMaxPriorityQueue
PeekingIterator
Forwarding collections
ForwardingCollection
com.google.common.collect.ForwardingConcurrentMap
ForwardingIterator
ForwardingList
ForwardingListIterator
ForwardingListMultimap
ForwardingMap
ForwardingMapEntry
ForwardingMultimap
ForwardingMultiset
ForwardingNavigableMap
ForwardingNavigableSet
ForwardingObject
ForwardingQueue
ForwardingSet
ForwardingSetMultimap
ForwardingSortedMap
ForwardingSortedMultiset
ForwardingSortedSet
ForwardingSortedSetMultimap
ForwardingTable
-
Interface Summary Interface Description BiMap<K,V> A bimap (or "bidirectional map") is a map that preserves the uniqueness of its values as well as that of its keys.ClassToInstanceMap<B> A map, each entry of which maps a Java raw type to an instance of that type.Interner<E> Provides equivalent behavior toString.intern()
for other immutable types.ListMultimap<K,V> AMultimap
that can hold duplicate key-value pairs and that maintains the insertion ordering of values for a given key.MapConstraint<K,V> A constraint on the keys and values that may be added to aMap
orMultimap
.MapDifference<K,V> An object representing the differences between two maps.MapDifference.ValueDifference<V> A difference between the mappings from two maps with the same key.Maps.EntryTransformer<K,V1,V2> A transformation of the value of a key-value pair, using both key and value as inputs.Multimap<K,V> A collection that maps keys to values, similar toMap
, but in which each key may be associated with multiple values.Multiset<E> A collection that supports order-independent equality, likeSet
, but may have duplicate elements.Multiset.Entry<E> An unmodifiable element-count pair for a multiset.PeekingIterator<E> An iterator that supports a one-element lookahead while iterating.RangeMap<K extends java.lang.Comparable,V> A mapping from disjoint nonempty ranges to non-null values.RangeSet<C extends java.lang.Comparable> RowSortedTable<R,C,V> Interface that extendsTable
and whose rows are sorted.SetMultimap<K,V> AMultimap
that cannot hold duplicate key-value pairs.SortedMapDifference<K,V> An object representing the differences between two sorted maps.SortedMultiset<E> AMultiset
which maintains the ordering of its elements, according to either their natural order or an explicitComparator
.SortedSetMultimap<K,V> ASetMultimap
whose set of values for a given key are kept sorted; that is, they comprise aSortedSet
.Table<R,C,V> A collection that associates an ordered pair of keys, called a row key and a column key, with a single value.Table.Cell<R,C,V> Row key / column key / value triplet corresponding to a mapping in a table. -
Class Summary Class Description AbstractIterator<T> This class provides a skeletal implementation of theIterator
interface, to make this interface easier to implement for certain types of data sources.AbstractSequentialIterator<T> This class provides a skeletal implementation of theIterator
interface for sequences whose next element can always be derived from the previous element.ArrayListMultimap<K,V> Implementation ofMultimap
that uses anArrayList
to store the values for a given key.ArrayTable<R,C,V> Fixed-sizeTable
implementation backed by a two-dimensional array.BinaryTreeTraverser<T> A variant ofTreeTraverser
for binary trees, providing additional traversals specific to binary trees.Collections2 Provides static methods for working withCollection
instances.ComparisonChain A utility for performing a chained comparison statement.ContiguousSet<C extends java.lang.Comparable> A sorted set of contiguous values in a givenDiscreteDomain
.DiscreteDomain<C extends java.lang.Comparable> A descriptor for a discreteComparable
domain such as allInteger
instances.EnumBiMap<K extends java.lang.Enum<K>,V extends java.lang.Enum<V>> ABiMap
backed by twoEnumMap
instances.EnumHashBiMap<K extends java.lang.Enum<K>,V> ABiMap
backed by anEnumMap
instance for keys-to-values, and aHashMap
instance for values-to-keys.EnumMultiset<E extends java.lang.Enum<E>> Multiset implementation backed by anEnumMap
.EvictingQueue<E> A non-blocking queue which automatically evicts elements from the head of the queue when attempting to add new elements onto the queue and it is full.FluentIterable<E> FluentIterable
provides a rich interface for manipulatingIterable
instances in a chained fashion.ForwardingCollection<E> A collection which forwards all its method calls to another collection.ForwardingDeque<E> A deque which forwards all its method calls to another deque.ForwardingIterator<T> An iterator which forwards all its method calls to another iterator.ForwardingList<E> A list which forwards all its method calls to another list.ForwardingListIterator<E> A list iterator which forwards all its method calls to another list iterator.ForwardingListMultimap<K,V> A list multimap which forwards all its method calls to another list multimap.ForwardingMap<K,V> A map which forwards all its method calls to another map.ForwardingMapEntry<K,V> A map entry which forwards all its method calls to another map entry.ForwardingMultimap<K,V> A multimap which forwards all its method calls to another multimap.ForwardingMultiset<E> A multiset which forwards all its method calls to another multiset.ForwardingNavigableMap<K,V> A navigable map which forwards all its method calls to another navigable map.ForwardingNavigableSet<E> A navigable set which forwards all its method calls to another navigable set.ForwardingObject An abstract base class for implementing the decorator pattern.ForwardingQueue<E> A queue which forwards all its method calls to another queue.ForwardingSet<E> A set which forwards all its method calls to another set.ForwardingSetMultimap<K,V> A set multimap which forwards all its method calls to another set multimap.ForwardingSortedMap<K,V> A sorted map which forwards all its method calls to another sorted map.ForwardingSortedMultiset<E> A sorted multiset which forwards all its method calls to another sorted multiset.ForwardingSortedSet<E> A sorted set which forwards all its method calls to another sorted set.ForwardingSortedSetMultimap<K,V> A sorted set multimap which forwards all its method calls to another sorted set multimap.ForwardingTable<R,C,V> A table which forwards all its method calls to another table.HashBasedTable<R,C,V> Implementation ofTable
using hash tables.HashBiMap<K,V> ABiMap
backed by two hash tables.HashMultimap<K,V> Implementation ofMultimap
using hash tables.HashMultiset<E> Multiset implementation backed by aHashMap
.ImmutableBiMap<K,V> An immutableBiMap
with reliable user-specified iteration order.ImmutableBiMap.Builder<K,V> A builder for creating immutable bimap instances, especiallypublic static final
bimaps ("constant bimaps").ImmutableClassToInstanceMap<B> A class-to-instance map backed by anImmutableMap
.ImmutableClassToInstanceMap.Builder<B> A builder for creating immutable class-to-instance maps.ImmutableCollection<E> An immutable collection.ImmutableCollection.Builder<E> Abstract base class for builders ofImmutableCollection
types.ImmutableList<E> A high-performance, immutable, random-accessList
implementation.ImmutableList.Builder<E> A builder for creating immutable list instances, especiallypublic static final
lists ("constant lists").ImmutableListMultimap<K,V> An immutableListMultimap
with reliable user-specified key and value iteration order.ImmutableListMultimap.Builder<K,V> A builder for creating immutableListMultimap
instances, especiallypublic static final
multimaps ("constant multimaps").ImmutableMap<K,V> An immutable, hash-basedMap
with reliable user-specified iteration order.ImmutableMap.Builder<K,V> A builder for creating immutable map instances, especiallypublic static final
maps ("constant maps").ImmutableMultimap<K,V> An immutableMultimap
.ImmutableMultimap.Builder<K,V> A builder for creating immutable multimap instances, especiallypublic static final
multimaps ("constant multimaps").ImmutableMultiset<E> An immutable hash-based multiset.ImmutableMultiset.Builder<E> A builder for creating immutable multiset instances, especiallypublic static final
multisets ("constant multisets").ImmutableRangeMap<K extends java.lang.Comparable<?>,V> An immutable implementation ofRangeMap
, supporting all query operations efficiently.ImmutableRangeMap.Builder<K extends java.lang.Comparable<?>,V> A builder for immutable range maps.ImmutableRangeSet<C extends java.lang.Comparable> An efficient immutable implementation of aRangeSet
.ImmutableRangeSet.Builder<C extends java.lang.Comparable<?>> A builder for immutable range sets.ImmutableSet<E> A high-performance, immutableSet
with reliable, user-specified iteration order.ImmutableSet.Builder<E> A builder for creating immutable set instances, especiallypublic static final
sets ("constant sets").ImmutableSetMultimap<K,V> An immutableSetMultimap
with reliable user-specified key and value iteration order.ImmutableSetMultimap.Builder<K,V> A builder for creating immutableSetMultimap
instances, especiallypublic static final
multimaps ("constant multimaps").ImmutableSortedMap<K,V> An immutableSortedMap
.ImmutableSortedMap.Builder<K,V> A builder for creating immutable sorted map instances, especiallypublic static final
maps ("constant maps").ImmutableSortedMultiset<E> An immutableSortedMultiset
that stores its elements in a sorted array.ImmutableSortedMultiset.Builder<E> A builder for creating immutable multiset instances, especiallypublic static final
multisets ("constant multisets").ImmutableSortedSet<E> An immutableSortedSet
that stores its elements in a sorted array.ImmutableSortedSet.Builder<E> A builder for creating immutable sorted set instances, especiallypublic static final
sets ("constant sets"), with a given comparator.ImmutableTable<R,C,V> An immutableTable
with reliable user-specified iteration order.ImmutableTable.Builder<R,C,V> A builder for creating immutable table instances, especiallypublic static final
tables ("constant tables").Iterables This class contains static utility methods that operate on or return objects of typeIterable
.Iterators This class contains static utility methods that operate on or return objects of typeIterator
.LinkedHashMultimap<K,V> Implementation ofMultimap
that does not allow duplicate key-value entries and that returns collections whose iterators follow the ordering in which the data was added to the multimap.LinkedHashMultiset<E> AMultiset
implementation with predictable iteration order.LinkedListMultimap<K,V> An implementation ofListMultimap
that supports deterministic iteration order for both keys and values.Lists Static utility methods pertaining toList
instances.MapConstraints Factory and utilities pertaining to theMapConstraint
interface.Maps MinMaxPriorityQueue<E> A double-ended priority queue, which provides constant-time access to both its least element and its greatest element, as determined by the queue's specified comparator.MinMaxPriorityQueue.Builder<B> The builder class used in creation of min-max priority queues.MultimapBuilder<K0,V0> A builder for a multimap implementation that allows customization of the backing map and value collection implementations used in a particular multimap.MultimapBuilder.ListMultimapBuilder<K0,V0> A specialization ofMultimapBuilder
that generatesListMultimap
instances.MultimapBuilder.MultimapBuilderWithKeys<K0> An intermediate stage in aMultimapBuilder
in which the key-value collection map implementation has been specified, but the value collection implementation has not.MultimapBuilder.SetMultimapBuilder<K0,V0> A specialization ofMultimapBuilder
that generatesSetMultimap
instances.MultimapBuilder.SortedSetMultimapBuilder<K0,V0> A specialization ofMultimapBuilder
that generatesSortedSetMultimap
instances.Multimaps Provides static methods acting on or generating aMultimap
.Multisets Provides static utility methods for creating and working withMultiset
instances.MutableClassToInstanceMap<B> A mutable class-to-instance map backed by an arbitrary user-provided map.ObjectArrays Static utility methods pertaining to object arrays.Ordering<T> A comparator, with additional methods to support common operations.Range<C extends java.lang.Comparable> A range (or "interval") defines the boundaries around a contiguous span of values of someComparable
type; for example, "integers from 1 to 100 inclusive." Note that it is not possible to iterate over these contained values.Sets Static utility methods pertaining toSet
instances.Sets.SetView<E> An unmodifiable view of a set which may be backed by other sets; this view will change as the backing sets do.Tables Provides static methods that involve aTable
.TreeBasedTable<R,C,V> Implementation ofTable
whose row keys and column keys are ordered by their natural ordering or by supplied comparators.TreeMultimap<K,V> Implementation ofMultimap
whose keys and values are ordered by their natural ordering or by supplied comparators.TreeMultiset<E> A multiset which maintains the ordering of its elements, according to either their natural order or an explicitComparator
.TreeRangeMap<K extends java.lang.Comparable,V> An implementation ofRangeMap
based on aTreeMap
, supporting all optional operations.TreeRangeSet<C extends java.lang.Comparable<?>> An implementation ofRangeSet
backed by aTreeMap
.TreeTraverser<T> Views elements of a typeT
as nodes in a tree, and provides methods to traverse the trees induced by this traverser.UnmodifiableIterator<E> An iterator that does not supportUnmodifiableIterator.remove()
.UnmodifiableListIterator<E> A list iterator that does not supportUnmodifiableIterator.remove()
,UnmodifiableListIterator.add(E)
, orUnmodifiableListIterator.set(E)
. -
Enum Summary Enum Description BoundType Indicates whether an endpoint of some range is contained in the range itself ("closed") or not ("open"). -
Exception Summary Exception Description ComputationException Wraps an exception that occurred during a computation.