A SetMultimap<K,V> whose contents will never change, with many other important properties detailed at ImmutableCollection<E>. See the Guava User Guide article on immutable collections.
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.
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>.
An object representing the differences between two sorted maps.
A pair maintaining a key and a value.