Package com.pnfsoftware.jeb.util.collect
Class SetMap<K,V>
java.lang.Object
com.pnfsoftware.jeb.util.collect.SetMap<K,V>
- Type Parameters:
K
- key typeV
- type of value to be stored
A map of keys to sets. Keys may be ordered (none, natural, by insertion); the ordering for the
value sets may be specified as well. This class is
serialializable
. Null key is
allowed; null values are allowed.
Thread-safety: none.
Note: this class does not implement the Map
interface, but attempts to follow its
guidelines and contracts the best it can. One notable exception is that this class does not
override hashCode/equals.
-
Constructor Summary
ConstructorsConstructorDescriptionSetMap()
Create a new set-map without any particular ordering.SetMap
(CollectionOrder keyOrder, CollectionOrder setOrder) Create a new set-map. -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
boolean
containsKey
(K key) boolean
containsValue
(V value) boolean
Create an explicit entry for a given key.boolean
isEmpty()
keySet()
Retrieve a read-only view of the keys.int
keySize()
int
Add a key-value mapping.void
void
putMulti
(K key, Collection<? extends V> values) Add multiple elements mapped by the same key.boolean
removeAll
(Collection<K> keys) Remove all entries mapping to the collection of keys.int
removeMulti
(K key, Collection<? extends V> values) removeValue
(K key, V value) int
size()
Get the number of key-value mappings (per Map interface).toString()
values()
-
Constructor Details
-
SetMap
public SetMap()Create a new set-map without any particular ordering. -
SetMap
Create a new set-map.- Parameters:
keyOrder
- key orderingsetOrder
- value-set ordering
-
-
Method Details
-
clear
public void clear() -
keySize
public int keySize() -
isEmpty
public boolean isEmpty() -
size
public int size()Get the number of key-value mappings (per Map interface). That is, the number of values.- Returns:
-
put
Add a key-value mapping.- Parameters:
key
-value
-- Returns:
- the updated count of values associated with the key
-
putMulti
Add multiple elements mapped by the same key. Note that if an empty collection is provided, the entry for the provided key will not be be explicitly created.- Parameters:
key
-values
-
-
putAll
-
createKey
Create an explicit entry for a given key. If no values mapped by the given key previously existed, the associated value will be an empty collection.- Parameters:
key
-- Returns:
- true if the map did not already contain the key; false otherwise (the key entry existed before)
-
containsKey
-
containsValue
-
get
-
get
- Parameters:
safe
- if true, an empty collection of values is returned if the key does not exist- Returns:
-
getSafe
-
remove
-
removeValue
-
removeMulti
-
values
-
keySet
Retrieve a read-only view of the keys.WARNING: This method does not respect the
Map.keySet()
contract: the set returned is read-only.- Returns:
- read-only view of the key set
-
removeAll
Remove all entries mapping to the collection of keys.Similar semantics as
Set.removeAll(Collection)
.- Parameters:
keys
-- Returns:
- true if the multi-map was modified
-
toString
-