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.
public class MultiMap<K,V> extends Object
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 aArrayList
in order to keep the order of its entries.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAP_SIZE
The constant value 6.
-
Constructor Summary
Constructors Constructor Description MultiMap()
Constructs a new MultiMap with a initial capacity ofDEFAULT_MAP_SIZE
.MultiMap(int size)
Constructs a new MultiMap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MultiMap<K,V>
asUnmodifiableMultiMap()
void
clear()
MultiMap<K,V>
clone()
boolean
containsKey(K key)
boolean
containsValue(V value)
Set<Map.Entry<K,V>>
entrySet()
List<V>
getAll(K key)
Get all values for the given key.V
getFirst(K key)
Get the first value for the given key, ornull
if there are no entries.boolean
isEmpty()
Set<K>
keySet()
boolean
put(K key, V value)
void
putAll(Map<? extends K,? extends V> map)
boolean
putFirst(K key, V value)
V
remove(K key)
Removes all mappings for the given key and returns the first value if there where mappings ornull
if not.List<V>
remove(K key, int num)
Remove the given number of values for a given key.boolean
removeOne(K key, V value)
Remove the mapping of the given key to the value.int
size()
List<V>
values()
Returns a new list containing all values of this multi map.
-
-
-
Field Detail
-
DEFAULT_MAP_SIZE
public static final int DEFAULT_MAP_SIZE
The constant value 6.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 Detail
-
size
public int size()
-
isEmpty
public boolean isEmpty()
-
containsKey
public boolean containsKey(K key)
-
containsValue
public boolean containsValue(V value)
-
getFirst
public V getFirst(K key)
Get the first value for the given key, ornull
if there are no entries.- Parameters:
key
- TODO javadoc me please- Returns:
- the first value or null.
-
getAll
public List<V> getAll(K key)
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.
-
remove
public V remove(K key)
Removes all mappings for the given key and returns the first value if there where mappings ornull
if not.- Parameters:
key
- TODO javadoc me please- Returns:
- the first value of the given key or null.
-
removeOne
public boolean removeOne(K key, V value)
Remove the mapping of the given key to the value.Returns
true
if the mapping was removed andfalse
if 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
public List<V> remove(K key, int num)
Remove the given number of values for a given key. May return less values then 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
-
clear
public void clear()
-
values
public List<V> values()
Returns a new list containing all values of this multi map.- Returns:
- a new list with all values.
-
asUnmodifiableMultiMap
public MultiMap<K,V> asUnmodifiableMultiMap()
-
-