Interface ListValuedMap<K,​V>

  • Type Parameters:
    K - the type of the keys in this map
    V - the type of the values in this map
    All Superinterfaces:
    MultiValuedMap<K,​V>
    All Known Implementing Classes:
    AbstractListValuedMap, ArrayListValuedHashMap

    public interface ListValuedMap<K,​V>
    extends MultiValuedMap<K,​V>
    Defines a map that holds a list of values against each key.

    A ListValuedMap is a Map with slightly different semantics:

    • Putting a value into the map will add the value to a List at that key.
    • Getting a value will return a List, holding all the values put to that key.
    Since:
    4.1
    • Method Detail

      • get

        List<V> get​(K key)
        Gets the list of values associated with the specified key.

        This method will return an empty list if MultiValuedMap.containsKey(Object) returns false. Changes to the returned list will update the underlying ListValuedMap and vice-versa.

        Specified by:
        get in interface MultiValuedMap<K,​V>
        Parameters:
        key - the key to retrieve
        Returns:
        the List of values, implementations should return an empty List for no mapping
        Throws:
        NullPointerException - if the key is null and null keys are invalid
      • remove

        List<V> remove​(Object key)
        Removes all values associated with the specified key.

        The returned list may be modifiable, but updates will not be propagated to this list-valued map. In case no mapping was stored for the specified key, an empty, unmodifiable list will be returned.

        Specified by:
        remove in interface MultiValuedMap<K,​V>
        Parameters:
        key - the key to remove values from
        Returns:
        the List of values removed, implementations typically return an empty, unmodifiable List for no mapping found
        Throws:
        UnsupportedOperationException - if the map is unmodifiable
        NullPointerException - if the key is null and null keys are invalid