org.apache.commons.collections4.multimap

## Class AbstractSetValuedMap<K,V>

- java.lang.Object
- - org.apache.commons.collections4.multimap.AbstractMultiValuedMap<K,V>
  - - org.apache.commons.collections4.multimap.AbstractSetValuedMap<K,V>

- Type Parameters:
    `K` - the type of the keys in this map
    `V` - the type of the values in this map
  All Implemented Interfaces:
    MultiValuedMap<K,V>, SetValuedMap<K,V>
  Direct Known Subclasses:
    HashSetValuedHashMap

      public abstract class AbstractSetValuedMap<K,V>
      extends AbstractMultiValuedMap<K,V>
      implements SetValuedMap<K,V>

  Abstract implementation of the `SetValuedMap` interface to simplify the creation of subclass implementations.

  Subclasses specify a Map implementation to use as the internal storage and the Set implementation to use as values.

  Since:
    4.1

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractSetValuedMap()` Constructor needed for subclass serialisation.
    `protected` | `AbstractSetValuedMap(Map<K,? extends Set<V>> map)` A constructor that wraps, not copies

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract Set<V>` | `createCollection()` Creates a new value collection using the provided factory.
    `Set<V>` | `get(K key)` Gets the set of values associated with the specified key.
    `protected Map<K,Set<V>>` | `getMap()` Gets the map being wrapped.
    `Set<V>` | `remove(Object key)` Removes all values associated with the specified key.

    - ### Methods inherited from class org.apache.commons.collections4.multimap.AbstractMultiValuedMap

      `asMap, clear, containsKey, containsMapping, containsValue, doReadObject, doWriteObject, entries, equals, hashCode, isEmpty, keys, keySet, mapIterator, put, putAll, putAll, putAll, removeMapping, setMap, size, toString, values`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.collections4.MultiValuedMap

      `asMap, clear, containsKey, containsMapping, containsValue, entries, isEmpty, keys, keySet, mapIterator, put, putAll, putAll, putAll, removeMapping, size, values`

- - ### Constructor Detail

    - #### AbstractSetValuedMap

          protected AbstractSetValuedMap()

      Constructor needed for subclass serialisation.

    - #### AbstractSetValuedMap

          protected AbstractSetValuedMap(Map<K,? extends Set<V>> map)

      A constructor that wraps, not copies
      Parameters:
        `map` - the map to wrap, must not be null
      Throws:
        `NullPointerException` - if the map is null

  - ### Method Detail

    - #### getMap

          protected Map<K,Set<V>> getMap()

      Description copied from class: `AbstractMultiValuedMap`
      Gets the map being wrapped.
      Overrides:
        `getMap` in class `AbstractMultiValuedMap<K,V>`
      Returns:
        the wrapped map

    - #### createCollection

          protected abstract Set<V> createCollection()

      Creates a new value collection using the provided factory.
      Specified by:
        `createCollection` in class `AbstractMultiValuedMap<K,V>`
      Returns:
        a new list

    - #### get

          public Set<V> get(K key)

      Gets the set of values associated with the specified key. This would return an empty set in case the mapping is not present
      Specified by:
        `get` in interface `MultiValuedMap<K,V>`
      Specified by:
        `get` in interface `SetValuedMap<K,V>`
      Overrides:
        `get` in class `AbstractMultiValuedMap<K,V>`
      Parameters:
        `key` - the key to retrieve
      Returns:
        the `Set` of values, will return an empty `Set` for no mapping

    - #### remove

          public Set<V> remove(Object key)

      Removes all values associated with the specified key.

      A subsequent `get(Object)` would return an empty set.

      Specified by:
        `remove` in interface `MultiValuedMap<K,V>`
      Specified by:
        `remove` in interface `SetValuedMap<K,V>`
      Overrides:
        `remove` in class `AbstractMultiValuedMap<K,V>`
      Parameters:
        `key` - the key to remove values from
      Returns:
        the `Set` of values removed, will return an empty, unmodifiable set for no mapping found.

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.