A builder for creating immutable bimap instances, especially public static final bimaps ("constant bimaps"). Example: static final ImmutableBiMap WORD_TO_INT = new ImmutableBiMap.Builder() .put("one", 1) .put("two", 2) .put("three", 3) .build(); For small immutable bimaps, the ImmutableBiMap.of() methods are even more convenient. By default, a Builder will generate bimaps that iterate over entries in the order they were inserted into the builder. For example, in the above example, WORD_TO_INT.entrySet() is guaranteed to iterate over the entries in the order "one"=1, "two"=2, "three"=3, and keySet() and values() respect the same order. If you want a different order, consider using orderEntriesByValue(Comparator<? super V> valueComparator), which changes this builder to sort entries by value. Builder instances can be reused - it is safe to call #build multiple times to build multiple bimaps in series. Each bimap is a superset of the bimaps created before it.
A BiMap backed by an EnumMap instance for keys-to-values, and a HashMap instance for values-to-keys. Null keys are not permitted, but null values are. An EnumHashBiMap and its inverse are both serializable. See the Guava User Guide article on BiMap.
An object representing the differences between two sorted maps.
Implementation of Multimap<K,V> using hash tables. The multimap does not store duplicate key-value pairs. Adding a new key-value pair equal to an existing key-value pair has no effect. Keys and values may be null. All optional multimap methods are supported, and all returned views are modifiable. This class is not threadsafe when any concurrent operations update the multimap. Concurrent read operations will work correctly. To allow concurrent update operations, wrap your multimap with a call to Multimaps#synchronizedSetMultimap.
A RangeMap<K,V> whose contents will never change, with many other important properties detailed at ImmutableCollection<E>.
A pair maintaining a key and a value.
Specifies the ordering of the generated multimap's values for each key. If this method is called, the sets returned by the get() method of the generated multimap and its asMap() view are ImmutableSortedSet<E> instances. However, serialization does not preserve that property, though it does maintain the key and value ordering.