The hash code equals the value Arrays.asList(leftValue(), rightValue()).hashCode().
Implementation of Multimap that uses an ArrayList to store the values for a given key. A HashMap associates each key with an ArrayList of values. When iterating through the collections supplied by this class, the ordering of values for a given key agrees with the order in which the values were added. This multimap allows duplicate key-value pairs. After adding a new key-value pair equal to an existing key-value pair, the ArrayListMultimap will contain entries for both the new value and the old value. Keys and values may be null. All optional multimap methods are supported, and all returned views are modifiable. The lists returned by #get, #removeAll, and #replaceValues all implement java.util.RandomAccess. 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#synchronizedListMultimap. See the Guava User Guide article on Multimap.
A Multimap that cannot hold duplicate key-value pairs. Adding a key-value pair that's already in the multimap has no effect. See the Multimap<K,V> documentation for information common to all multimaps. The #get, #removeAll, and #replaceValues methods each return a Set of values, while #entries returns a Set of map entries. Though the method signature doesn't say so explicitly, the map returned by #asMap has Set values. If the values corresponding to a single key should be ordered according to a java.util.Comparator (or the natural order), see the SortedSetMultimap<K,V> subinterface. Since the value collections are sets, the behavior of a SetMultimap is not specified if key or value objects already present in the multimap change in a manner that affects equals comparisons. Use caution if mutable objects are used as keys or values in a SetMultimap. See the Guava User Guide article on Multimap.
A Map whose contents will never change, with many other important properties detailed at ImmutableCollection<E>. See the Guava User Guide article on immutable collections.