Package org.apache.commons.collections4

# Interface SetValuedMap<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:
  `AbstractSetValuedMap`, `HashSetValuedHashMap`, `LinkedHashSetValuedLinkedHashMap`

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

A `SetValuedMap` is a Map with slightly different semantics:

- Putting a value into the map will add the value to a `Set` at that key.
- Getting a value will return a `Set`, holding all the values put to that key.

Since:
  4.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<V>`
  `get(K key)`
  Gets the set of values associated with the specified key.
  `Set<V>`
  `remove(Object key)`
  Removes all values associated with the specified key.

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

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

- ## Method Details

  - ### get

    Set<V> get(K key)
    Gets the set of values associated with the specified key.

    Implementations typically return an empty `Set` if no values have been mapped to the key.

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

  - ### remove

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

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

    Specified by:
      `remove` in interface `MultiValuedMap<K,V>`
    Parameters:
      `key` - The key to remove values from.
    Returns:
      The `Set` of values removed, implementations should return null for no mapping found, but may return an empty collection.
    Throws:
      `UnsupportedOperationException` - if the map is unmodifiable.
      `NullPointerException` - if the key is null and null keys are invalid.