Class 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 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

      • 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.