## com.google.common.collect
Interface ListMultimap<K,V>

All Superinterfaces:
  Multimap<K,V>

All Known Implementing Classes:
  ArrayListMultimap, ForwardingListMultimap, ImmutableListMultimap, LinkedListMultimap

    @GwtCompatible
    public interface ListMultimap<K,V>

extends Multimap<K,V>

A `Multimap` that can hold duplicate key-value pairs and that maintains the insertion ordering of values for a given key. See the `Multimap` documentation for information common to all multimaps.

The `get(K)`, `removeAll(java.lang.Object)`, and `replaceValues(K, java.lang.Iterable<? extends V>)` methods each return a `List` of values. Though the method signature doesn't say so explicitly, the map returned by `asMap()` has `List` values.

See the Guava User Guide article on `Multimap`.

Since:
  2.0 (imported from Google Collections Library)
Author:
  Jared Levy

Method Summary
`Map<K,Collection<V>>` `asMap()` Returns a map view that associates each key with the corresponding values in the multimap.
`boolean` `equals(Object obj)` Compares the specified object to this multimap for equality.
`List<V>` `get(K key)` Returns a collection view of all values associated with a key.
`List<V>` `removeAll(Object key)` Removes all values associated with a given key.
`List<V>` `replaceValues(K key, Iterable<? extends V> values)` Stores a collection of values with the same key, replacing any existing values for that key.

Methods inherited from interface com.google.common.collect.Multimap
`clear, containsEntry, containsKey, containsValue, entries, hashCode, isEmpty, keys, keySet, put, putAll, putAll, remove, size, values`

Method Detail

### get

    List<V> get(@Nullable
                K key)

  Returns a collection view of all values associated with a key. If no mappings in the multimap have the provided key, an empty collection is returned.

  Changes to the returned collection will update the underlying multimap, and vice versa.

  Because the values for a given key may have duplicates and follow the insertion ordering, this method returns a `List`, instead of the `Collection` specified in the `Multimap` interface.

  Specified by:
    `get` in interface `Multimap<K,V>`
  Parameters:
    `key` - key to search for in multimap
  Returns:
    the collection of values that the key maps to

### removeAll

    List<V> removeAll(@Nullable
                      Object key)

  Removes all values associated with a given key.

  Because the values for a given key may have duplicates and follow the insertion ordering, this method returns a `List`, instead of the `Collection` specified in the `Multimap` interface.

  Specified by:
    `removeAll` in interface `Multimap<K,V>`
  Parameters:
    `key` - key of entries to remove from the multimap
  Returns:
    the collection of removed values, or an empty collection if no values were associated with the provided key. The collection may be modifiable, but updating it will have no effect on the multimap.

### replaceValues

    List<V> replaceValues(K key,
                          Iterable<? extends V> values)

  Stores a collection of values with the same key, replacing any existing values for that key.

  Because the values for a given key may have duplicates and follow the insertion ordering, this method returns a `List`, instead of the `Collection` specified in the `Multimap` interface.

  Specified by:
    `replaceValues` in interface `Multimap<K,V>`
  Parameters:
    `key` - key to store in the multimap
    `values` - values to store in the multimap
  Returns:
    the collection of replaced values, or an empty collection if no values were previously associated with the key. The collection may be modifiable, but updating it will have no effect on the multimap.

### asMap

    Map<K,Collection<V>> asMap()

  Returns a map view that associates each key with the corresponding values in the multimap. Changes to the returned map, such as element removal, will update the underlying multimap. The map does not support `setValue()` on its entries, `put`, or `putAll`.

  When passed a key that is present in the map, `asMap().get(Object)` has the same behavior as `Multimap.get(K)`, returning a live collection. When passed a key that is not present, however, `asMap().get(Object)` returns `null` instead of an empty collection.

  Though the method signature doesn't say so explicitly, the returned map has `List` values.

  Specified by:
    `asMap` in interface `Multimap<K,V>`
  Returns:
    a map view from a key to its collection of values

### equals

    boolean equals(@Nullable
                   Object obj)

  Compares the specified object to this multimap for equality.

  Two `ListMultimap` instances are equal if, for each key, they contain the same values in the same order. If the value orderings disagree, the multimaps will not be considered equal.

  An empty `ListMultimap` is equal to any other empty `Multimap`, including an empty `SetMultimap`.

  Specified by:
    `equals` in interface `Multimap<K,V>`
  Overrides:
    `equals` in class `Object`

Copyright © 2010-2012. All Rights Reserved.