@GwtCompatible(emulated=true) public abstract class ImmutableMultimap<K,V> extends Objectimplements Serializable
Multimap. Does not permit null keys or values.
Unlike Multimaps, which is a view of a separate multimap which can still change, an instance of ImmutableMultimap contains its own data and will never change. ImmutableMultimap 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.
In addition to methods defined by Multimap, an inverse() method is also supported.
See the Guava User Guide article on immutable collections.
| Modifier and Type | Class and Description |
|---|---|
static class |
ImmutableMultimap
A builder for creating immutable multimap instances, especially
public static final multimaps ("constant multimaps").
|
| Modifier and Type | Method and Description |
|---|---|
ImmutableMap |
asMap()
Returns an immutable map that associates each key with its corresponding values in the multimap.
|
static <K |
builder()
Returns a new builder.
|
void |
clear()
Deprecated.
Unsupported operation.
|
boolean |
containsEntry(Object
Returns
true if this multimap contains at least one key-value pair with the key
key and the value
value.
|
boolean |
containsKey(Object
Returns
true if this multimap contains at least one key-value pair with the key
key.
|
boolean |
containsValue(Object
Returns
true if this multimap contains at least one key-value pair with the value
value.
|
static <K |
copyOf(Multimap
Returns an immutable multimap containing the same mappings as
multimap.
|
ImmutableCollection |
entries()
Returns an immutable collection of all key-value pairs in the multimap.
|
boolean |
equals(Object
Compares the specified object with this multimap for equality.
|
abstract ImmutableCollection |
get(K key)
Returns an immutable collection of the values for the given key.
|
int |
hashCode()
Returns the hash code for this multimap.
|
abstract ImmutableMultimap |
inverse()
Returns an immutable multimap which is the inverse of this one.
|
boolean |
isEmpty()
Returns
true if this multimap contains no key-value pairs.
|
ImmutableMultiset |
keys()
Returns a collection, which may contain duplicates, of all keys.
|
ImmutableSet |
keySet()
Returns an immutable set of the distinct keys in this multimap.
|
static <K |
of()
Returns an 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.
|
boolean |
put(K key, V value)
Deprecated.
Unsupported operation.
|
boolean |
putAll(K key, Iterable
Deprecated.
Unsupported operation.
|
boolean |
putAll(Multimap
Deprecated.
Unsupported operation.
|
boolean |
remove(Object
Deprecated.
Unsupported operation.
|
ImmutableCollection |
removeAll(Object
Deprecated.
Unsupported operation.
|
ImmutableCollection |
replaceValues(K key, Iterable
Deprecated.
Unsupported operation.
|
int |
size()
Returns the number of key-value pairs in this multimap.
|
String |
toString()
Returns a string representation of the multimap, generated by calling
toString on the map returned by
Multimap.
|
ImmutableCollection |
values()
Returns an immutable collection of the values in this multimap.
|
public static <K,V> ImmutableMultimap <K ,V> of()
public static <K,V> ImmutableMultimap <K ,V> of(K k1, V v1)
public static <K,V> ImmutableMultimap <K ,V> of(K k1, V v1, K k2, V v2)
public static <K,V> ImmutableMultimap <K ,V> of(K k1, V v1, K k2, V v2, K k3, V v3)
public static <K,V> ImmutableMultimap <K ,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
public static <K,V> ImmutableMultimap <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> ImmutableMultimap .Builder <K ,V> builder()
ImmutableMultimap.Builder constructor.
public static <K,V> ImmutableMultimap <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
@Deprecated public ImmutableCollection<V> removeAll(Object key)
removeAll in interface
Multimap<K,V>
UnsupportedOperationException - always
@Deprecated public ImmutableCollection<V> replaceValues(K key, Iterable <? extends V> values)
replaceValues in interface
Multimap<K,V>
UnsupportedOperationException - always
@Deprecated public void clear()
clear in interface
Multimap<K,V>
UnsupportedOperationException - always
public abstract ImmutableCollection<V> get(K key)
public abstract ImmutableMultimap<V ,K> inverse()
@Deprecated public boolean put(K key, V value)
put in interface
Multimap<K,V>
true if the method increased the size of the multimap, or
false if the multimap already contained the key-value pair and doesn't allow duplicates
UnsupportedOperationException - always
@Deprecated public boolean putAll(K key, Iterable<? extends V> values)
putAll in interface
Multimap<K,V>
true if the multimap changed
UnsupportedOperationException - always
@Deprecated public boolean putAll(Multimap<? extends K ,? extends V> multimap)
putAll in interface
Multimap<K,V>
true if the multimap changed
UnsupportedOperationException - always
@Deprecated public boolean remove(Objectkey, Object value)
remove in interface
Multimap<K,V>
true if the multimap changed
UnsupportedOperationException - always
public boolean containsKey(Objectkey)
Multimap
true if this multimap contains at least one key-value pair with the key
key.
public boolean containsValue(Objectvalue)
Multimap
true if this multimap contains at least one key-value pair with the value
value.
public int size()
Multimap
Note: this method does not return the number of distinct keys in the multimap, which is given by keySet().size() or asMap().size(). See the opening section of the Multimap class documentation for clarification.
public ImmutableSet<K> keySet()
public ImmutableMap<K ,Collection <V>> asMap()
public ImmutableCollection<Map .Entry <K ,V>> entries()
public ImmutableMultiset<K> keys()
public ImmutableCollection<V> values()
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() .