Returns the value from the right map (possibly null).
A multimap which forwards all its method calls to another multimap. Subclasses should override one or more methods to modify the behavior of the backing multimap as desired per the decorator pattern. default method warning: This class does not forward calls to default methods. Instead, it inherits their default implementations. When those implementations invoke methods, they invoke methods on the ForwardingMultimap.
A mapping from disjoint nonempty ranges to non-null values. Queries look up the value associated with the range (if any) that contains a specified key. In contrast to RangeSet<C>, no "coalescing" is done of isConnected(Range<C> other) ranges, even if they are mapped to the same value.
A Multimap<K,V> whose contents will never change, with many other important properties detailed at ImmutableCollection<E>. Warning: avoid direct usage of ImmutableMultimap<K,V> as a type (as with Multimap<K,V> itself). Prefer subtypes such as ImmutableSetMultimap<K,V> or ImmutableListMultimap<K,V>, which have well-defined #equals semantics, thus avoiding a common source of bugs and confusion. Note: every ImmutableMultimap<K,V> offers an #inverse view, so there is no need for a distinct ImmutableBiMultimap type. Key-grouped iteration. All view collections follow the same iteration order. In all current implementations, the iteration order always keeps multiple entries with the same key together. Any creation method that would customarily respect insertion order (such as <K,V>copyOf(Multimap<? extends K,? extends V> multimap)) instead preserves key-grouped order by inserting entries for an existing key immediately after the last entry having that key. See the Guava User Guide article on immutable collections.
The hash code equals the value Arrays.asList(leftValue(), rightValue()).hashCode().
An implementation of RangeMap based on a TreeMap, supporting all optional operations. Like all RangeMap implementations, this supports neither null keys nor null values.