Package org.springframework.util
Class LinkedMultiValueMap<K,V>
- java.lang.Object
- org.springframework.util.LinkedMultiValueMap<K,V>
- Type Parameters:
K
- the key typeV
- the value element type
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<K,List<V>>
,MultiValueMap<K,V>
public class LinkedMultiValueMap<K,V> extends Object implements MultiValueMap<K,V>, Serializable, Cloneable
Simple implementation ofMultiValueMap
that wraps aLinkedHashMap
, storing multiple values in aLinkedList
.This Map implementation is generally not thread-safe. It is primarily designed for data structures exposed from request objects, for use in a single thread only.
- Since:
- 3.0
- Author:
- Arjen Poutsma, Juergen Hoeller
- See Also:
- Serialized Form
Constructor Summary
Constructors Constructor Description LinkedMultiValueMap()
Create a new LinkedMultiValueMap that wraps aLinkedHashMap
.LinkedMultiValueMap(int initialCapacity)
Create a new LinkedMultiValueMap that wraps aLinkedHashMap
with the given initial capacity.LinkedMultiValueMap(Map<K,List<V>> otherMap)
Copy constructor: Create a new LinkedMultiValueMap with the same mappings as the specified Map.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(K key, V value)
Add the given single value to the current list of values for the given key.void
clear()
LinkedMultiValueMap<K,V>
clone()
Create a regular copy of this Map.boolean
containsKey(Object key)
boolean
containsValue(Object value)
LinkedMultiValueMap<K,V>
deepCopy()
Create a deep copy of this Map.Set<Map.Entry<K,List<V>>>
entrySet()
boolean
equals(Object other)
List<V>
get(Object key)
V
getFirst(K key)
Return the first value for the given key.int
hashCode()
boolean
isEmpty()
Set<K>
keySet()
List<V>
put(K key, List<V> value)
void
putAll(Map<? extends K,? extends List<V>> map)
List<V>
remove(Object key)
void
set(K key, V value)
Set the given single value under the given key.void
setAll(Map<K,V> values)
Set the given values under.int
size()
Map<K,V>
toSingleValueMap()
Return aMap
with the first values contained in thisMultiValueMap
.String
toString()
Collection<List<V>>
values()
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
Constructor Detail
LinkedMultiValueMap
public LinkedMultiValueMap()
Create a new LinkedMultiValueMap that wraps aLinkedHashMap
.
LinkedMultiValueMap
public LinkedMultiValueMap(int initialCapacity)
Create a new LinkedMultiValueMap that wraps aLinkedHashMap
with the given initial capacity.- Parameters:
initialCapacity
- the initial capacity
LinkedMultiValueMap
public LinkedMultiValueMap(Map<K,List<V>> otherMap)
Copy constructor: Create a new LinkedMultiValueMap with the same mappings as the specified Map. Note that this will be a shallow copy; its value-holding List entries will get reused and therefore cannot get modified independently.- Parameters:
otherMap
- the Map whose mappings are to be placed in this Map- See Also:
clone()
,deepCopy()
Method Detail
getFirst
public V getFirst(K key)
Description copied from interface:MultiValueMap
Return the first value for the given key.- Specified by:
getFirst
in interfaceMultiValueMap<K,V>
- Parameters:
key
- the key- Returns:
- the first value for the specified key, or
null
if none
add
public void add(K key, V value)
Description copied from interface:MultiValueMap
Add the given single value to the current list of values for the given key.- Specified by:
add
in interfaceMultiValueMap<K,V>
- Parameters:
key
- the keyvalue
- the value to be added
set
public void set(K key, V value)
Description copied from interface:MultiValueMap
Set the given single value under the given key.- Specified by:
set
in interfaceMultiValueMap<K,V>
- Parameters:
key
- the keyvalue
- the value to set
setAll
public void setAll(Map<K,V> values)
Description copied from interface:MultiValueMap
Set the given values under.- Specified by:
setAll
in interfaceMultiValueMap<K,V>
- Parameters:
values
- the values.
toSingleValueMap
public Map<K,V> toSingleValueMap()
Description copied from interface:MultiValueMap
Return aMap
with the first values contained in thisMultiValueMap
.- Specified by:
toSingleValueMap
in interfaceMultiValueMap<K,V>
- Returns:
- a single value representation of this map
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<K,V>
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<K,V>
deepCopy
public LinkedMultiValueMap<K,V> deepCopy()
Create a deep copy of this Map.- Returns:
- a copy of this Map, including a copy of each value-holding List entry
- Since:
- 4.2
- See Also:
clone()
clone
public LinkedMultiValueMap<K,V> clone()
Create a regular copy of this Map.- Overrides:
clone
in classObject
- Returns:
- a shallow copy of this Map, reusing this Map's value-holding List entries
- Since:
- 4.2
- See Also:
LinkedMultiValueMap(Map)
,deepCopy()
hashCode
public int hashCode()