org.springframework.util

## Class LinkedMultiValueMap<K,V>

- java.lang.Object
- - org.springframework.util.LinkedMultiValueMap<K,V>

All Implemented Interfaces:
  Serializable, Map<K,List<V>>, MultiValueMap<K,V>

    public class LinkedMultiValueMap<K,V>
    extends Object
    implements MultiValueMap<K,V>, Serializable

Simple implementation of `MultiValueMap` that wraps a `LinkedHashMap`, storing multiple values in a `LinkedList`.

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

### Nested Class Summary

### Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

### Constructor Summary

Constructors
Constructor and Description
`LinkedMultiValueMap()` Create a new LinkedMultiValueMap that wraps a `LinkedHashMap`.
`LinkedMultiValueMap(int initialCapacity)` Create a new LinkedMultiValueMap that wraps a `LinkedHashMap` 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

Methods
`void` `add(K key, V value)` Add the given single value to the current list of values for the given key.
`void` `clear()`
`boolean` `containsKey(Object key)`
`boolean` `containsValue(Object value)`
`Set<Map.Entry<K,List<V>>>` `entrySet()`
`boolean` `equals(Object obj)`
`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>> m)`
`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()` Returns the first values contained in this `MultiValueMap`.
`String` `toString()`
`Collection<List<V>>` `values()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### LinkedMultiValueMap

    public LinkedMultiValueMap()

Create a new LinkedMultiValueMap that wraps a `LinkedHashMap`.

#### LinkedMultiValueMap

    public LinkedMultiValueMap(int initialCapacity)

Create a new LinkedMultiValueMap that wraps a `LinkedHashMap` 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.

Parameters:
  `otherMap` - the Map whose mappings are to be placed in this Map

### Method Detail

#### 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 interface `MultiValueMap<K,V>`
Parameters:
  `key` - the key
  `value` - the value to be added

#### getFirst

    public V getFirst(K key)

Description copied from interface: `MultiValueMap`
Return the first value for the given key.

Specified by:
  `getFirst` in interface `MultiValueMap<K,V>`
Parameters:
  `key` - the key
Returns:
  the first value for the specified key, or `null`

#### 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 interface `MultiValueMap<K,V>`
Parameters:
  `key` - the key
  `value` - 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 interface `MultiValueMap<K,V>`
Parameters:
  `values` - the values.

#### toSingleValueMap

    public Map<K,V> toSingleValueMap()

Description copied from interface: `MultiValueMap`
Returns the first values contained in this `MultiValueMap`.

Specified by:
  `toSingleValueMap` in interface `MultiValueMap<K,V>`
Returns:
  a single value representation of this map

#### size

    public int size()

Specified by:
  `size` in interface `Map<K,List<V>>`

#### isEmpty

    public boolean isEmpty()

Specified by:
  `isEmpty` in interface `Map<K,List<V>>`

#### containsKey

    public boolean containsKey(Object key)

Specified by:
  `containsKey` in interface `Map<K,List<V>>`

#### containsValue

    public boolean containsValue(Object value)

Specified by:
  `containsValue` in interface `Map<K,List<V>>`

#### get

    public List<V> get(Object key)

Specified by:
  `get` in interface `Map<K,List<V>>`

#### put

    public List<V> put(K key,
              List<V> value)

Specified by:
  `put` in interface `Map<K,List<V>>`

#### remove

    public List<V> remove(Object key)

Specified by:
  `remove` in interface `Map<K,List<V>>`

#### putAll

    public void putAll(Map<? extends K,? extends List<V>> m)

Specified by:
  `putAll` in interface `Map<K,List<V>>`

#### clear

    public void clear()

Specified by:
  `clear` in interface `Map<K,List<V>>`

#### keySet

    public Set<K> keySet()

Specified by:
  `keySet` in interface `Map<K,List<V>>`

#### values

    public Collection<List<V>> values()

Specified by:
  `values` in interface `Map<K,List<V>>`

#### entrySet

    public Set<Map.Entry<K,List<V>>> entrySet()

Specified by:
  `entrySet` in interface `Map<K,List<V>>`

#### equals

    public boolean equals(Object obj)

Specified by:
  `equals` in interface `Map<K,List<V>>`
Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `Map<K,List<V>>`
Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`