@GwtCompatible(serializable=true, emulated=true) public class ImmutableListMultimap<K,V> extends ImmutableMultimap<K ,V> implements ListMultimap <K ,V>
ListMultimap with reliable user-specified key and value iteration order. Does not permit null keys or values.
Unlike Multimaps, which is a view of a separate multimap which can still change, an instance of ImmutableListMultimap contains its own data and will never change. ImmutableListMultimap is convenient for public static final multimaps ("constant multimaps") and also lets you easily make a "defensive copy" of a multimap provided to your class by a caller.
Note: Although this class is not final, it cannot be subclassed as it has no public or protected constructors. Thus, instances of this class are guaranteed to be immutable.
See the Guava User Guide article on immutable collections.
| Modifier and Type | Class and Description |
|---|---|
static class |
ImmutableListMultimap
A builder for creating immutable
ListMultimap instances, especially
public static final multimaps ("constant multimaps").
|
| Modifier and Type | Method and Description |
|---|---|
static <K |
builder()
Returns a new builder.
|
boolean |
containsEntry(Object
Returns
true if this multimap contains at least one key-value pair with the key
key and the value
value.
|
static <K |
copyOf(Multimap
Returns an immutable multimap containing the same mappings as
multimap.
|
boolean |
equals(Object
Compares the specified object with this multimap for equality.
|
ImmutableList |
get(K key)
Returns an immutable list of the values for the given key.
|
int |
hashCode()
Returns the hash code for this multimap.
|
ImmutableListMultimap |
inverse()
Returns an immutable multimap which is the inverse of this one.
|
boolean |
isEmpty()
Returns
true if this multimap contains no key-value pairs.
|
static <K |
of()
Returns the empty multimap.
|
static <K |
of(K k1, V v1)
Returns an immutable multimap containing a single entry.
|
static <K |
of(K k1, V v1, K k2, V v2)
Returns an immutable multimap containing the given entries, in order.
|
static <K |
of(K k1, V v1, K k2, V v2, K k3, V v3)
Returns an immutable multimap containing the given entries, in order.
|
static <K |
of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
Returns an immutable multimap containing the given entries, in order.
|
static <K |
of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
Returns an immutable multimap containing the given entries, in order.
|
ImmutableList |
removeAll(Object
Deprecated.
Unsupported operation.
|
ImmutableList |
replaceValues(K key, Iterable
Deprecated.
Unsupported operation.
|
String |
toString()
Returns a string representation of the multimap, generated by calling
toString on the map returned by
Multimap.
|
asMap, clear, containsKey, containsValue, entries, keys, keySet, put, putAll, putAll, remove, size, valuesclone, finalize, getClass, notify, notifyAll, wait, wait, waitasMap, equalspublic static <K,V> ImmutableListMultimap <K ,V> of()
public static <K,V> ImmutableListMultimap <K ,V> of(K k1, V v1)
public static <K,V> ImmutableListMultimap <K ,V> of(K k1, V v1, K k2, V v2)
public static <K,V> ImmutableListMultimap <K ,V> of(K k1, V v1, K k2, V v2, K k3, V v3)
public static <K,V> ImmutableListMultimap <K ,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
public static <K,V> ImmutableListMultimap <K ,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
public static <K,V> ImmutableListMultimap .Builder <K ,V> builder()
ImmutableListMultimap.Builder constructor.
public static <K,V> ImmutableListMultimap <K ,V> copyOf(Multimap <? extends K ,? extends V> multimap)
multimap. The generated multimap's key and value orderings correspond to the iteration ordering of the
multimap.asMap() view.
Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
NullPointerException - if any key or value in
multimap is null
public ImmutableList<V> get(K key)
public ImmutableListMultimap<V ,K> inverse()
Because an inverse of a list multimap can contain multiple pairs with the same key and value, this method returns an ImmutableListMultimap rather than the ImmutableMultimap specified in the ImmutableMultimap class.
inverse in class
ImmutableMultimap<K,V>
@Deprecated public ImmutableList<V> removeAll(Object key)
removeAll in interface
ListMultimap<K,V>
removeAll in interface
Multimap<K,V>
removeAll in class
ImmutableMultimap<K,V>
UnsupportedOperationException - always
@Deprecated public ImmutableList<V> replaceValues(K key, Iterable <? extends V> values)
replaceValues in interface
ListMultimap<K,V>
replaceValues in interface
Multimap<K,V>
replaceValues in class
ImmutableMultimap<K,V>
UnsupportedOperationException - always
public boolean isEmpty()
Multimap
true if this multimap contains no key-value pairs. Equivalent to
size() == 0, but can in some cases be more efficient.
public boolean containsEntry(Objectkey, Object value)
Multimap
true if this multimap contains at least one key-value pair with the key
key and the value
value.
public boolean equals(Objectobject)
Multimap
Multimap.asMap() , are also equal.
In general, two multimaps with identical key-value mappings may or may not be equal, depending on the implementation. For example, two SetMultimap instances with the same key-value mappings are equal, but equality of two ListMultimap instances depends on the ordering of the values for each key.
A non-empty SetMultimap cannot be equal to a non-empty ListMultimap, since their Multimap views contain unequal collections as values. However, any two empty multimaps are equal, because they both have empty Multimap views.
public int hashCode()
The hash code of a multimap is defined as the hash code of the map view, as returned by Multimap.
hashCode in interface
Multimap<K,V>
hashCode in class
Object
Map.hashCode()
public StringtoString()
toString on the map returned by
Multimap.asMap() .