K
- the type of the keys in this mapV
- the type of the values in this mappublic abstract class AbstractSetValuedMap<K,V> extends AbstractMultiValuedMap<K,V> implements SetValuedMap<K,V>
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.
Modifier and Type | Class and Description |
---|---|
private class |
AbstractSetValuedMap.WrappedSet
Wrapped set to handle add and remove on the collection returned by
get(Object) . |
AbstractMultiValuedMap.WrappedCollection
Modifier | Constructor and Description |
---|---|
protected |
AbstractSetValuedMap()
Constructor needed for subclass serialisation.
|
protected |
AbstractSetValuedMap(java.util.Map<K,? extends java.util.Set<V>> map)
A constructor that wraps, not copies
|
Modifier and Type | Method and Description |
---|---|
protected abstract java.util.Set<V> |
createCollection()
Creates a new value collection using the provided factory.
|
java.util.Set<V> |
get(K key)
Gets the set of values associated with the specified key.
|
protected java.util.Map<K,java.util.Set<V>> |
getMap()
Gets the map being wrapped.
|
java.util.Set<V> |
remove(java.lang.Object key)
Removes all values associated with the specified key.
|
(package private) java.util.Set<V> |
wrappedCollection(K key) |
asMap, clear, containsKey, containsMapping, containsValue, doReadObject, doWriteObject, entries, equals, hashCode, isEmpty, keys, keySet, mapIterator, put, putAll, putAll, putAll, removeMapping, setMap, size, toString, values
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asMap, clear, containsKey, containsMapping, containsValue, entries, isEmpty, keys, keySet, mapIterator, put, putAll, putAll, putAll, removeMapping, size, values
protected AbstractSetValuedMap()
protected java.util.Map<K,java.util.Set<V>> getMap()
AbstractMultiValuedMap
getMap
in class AbstractMultiValuedMap<K,V>
protected abstract java.util.Set<V> createCollection()
createCollection
in class AbstractMultiValuedMap<K,V>
public java.util.Set<V> get(K key)
get
in interface MultiValuedMap<K,V>
get
in interface SetValuedMap<K,V>
get
in class AbstractMultiValuedMap<K,V>
key
- the key to retrieveSet
of values, will return an empty
Set
for no mappingjava.util.Set<V> wrappedCollection(K key)
wrappedCollection
in class AbstractMultiValuedMap<K,V>
public java.util.Set<V> remove(java.lang.Object key)
A subsequent get(Object)
would return an empty set.
remove
in interface MultiValuedMap<K,V>
remove
in interface SetValuedMap<K,V>
remove
in class AbstractMultiValuedMap<K,V>
key
- the key to remove values fromSet
of values removed, will return an empty,
unmodifiable set for no mapping found.