Package org.jivesoftware.smack.util
Class MultiMap<K,V>
java.lang.Object
org.jivesoftware.smack.util.MultiMap<K,V>
- Type Parameters:
K- the type of the keys the map uses.V- the type of the values the map uses.
A lightweight implementation of a MultiMap, that is a Map that is able to hold multiple values for every key.
This MultiMap uses a LinkedHashMap together with a ArrayList in order to keep the order of its entries.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMultiMap()Constructs a new MultiMap with a initial capacity ofDEFAULT_MAP_SIZE.MultiMap(int size) Constructs a new MultiMap. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()clone()booleancontainsKey(K key) booleancontainsValue(V value) entrySet()Get all values for the given key.Get the first value for the given key, ornullif there are no entries.booleanisEmpty()keySet()booleanvoidbooleanRemoves all mappings for the given key and returns the first value if there where mappings ornullif not.Remove the given number of values for a given key.booleanRemove the mapping of the given key to the value.intsize()values()Returns a new list containing all values of this multi map.
-
Field Details
-
DEFAULT_MAP_SIZE
public static final int DEFAULT_MAP_SIZEThe constant value 6.- See Also:
-
-
Constructor Details
-
MultiMap
public MultiMap()Constructs a new MultiMap with a initial capacity ofDEFAULT_MAP_SIZE. -
MultiMap
public MultiMap(int size) Constructs a new MultiMap.- Parameters:
size- the initial capacity.
-
-
Method Details
-
size
public int size() -
isEmpty
public boolean isEmpty() -
containsKey
-
containsValue
-
getFirst
Get the first value for the given key, ornullif there are no entries.- Parameters:
key- TODO javadoc me please- Returns:
- the first value or null.
-
getAll
Get all values for the given key. Returns the empty set if there are none.Changes to the returned set will update the underlying MultiMap if the return set is not empty.
- Parameters:
key- TODO javadoc me please- Returns:
- all values for the given key.
-
put
-
putFirst
-
remove
Removes all mappings for the given key and returns the first value if there where mappings ornullif not.- Parameters:
key- TODO javadoc me please- Returns:
- the first value of the given key or null.
-
removeOne
Remove the mapping of the given key to the value.Returns
trueif the mapping was removed andfalseif the mapping did not exist.- Parameters:
key- TODO javadoc me pleasevalue- TODO javadoc me please- Returns:
- true if the mapping was removed, false otherwise.
-
remove
Remove the given number of values for a given key. May return less values than requested.- Parameters:
key- the key to remove from.num- the number of values to remove.- Returns:
- a list of the removed values.
- Since:
- 4.4.0
-
putAll
-
clear
public void clear() -
keySet
-
values
Returns a new list containing all values of this multi map.- Returns:
- a new list with all values.
-
entrySet
-
asUnmodifiableMultiMap
-
clone
-