public class

LinkedHashMap

extends HashMap<K, V>
java.lang.Object
   ↳ java.util.AbstractMap<K, V>
     ↳ java.util.HashMap<K, V>
       ↳ java.util.LinkedHashMap<K, V>

Class Overview

LinkedHashMap is a variant of HashMap. Its entries are kept in a doubly-linked list. The iteration order is, by default, the order in which keys were inserted. Reinserting an already existing key doesn't change the order. A key is existing if a call to containsKey would return true.

If the three argument constructor is used, and order is specified as true, the iteration will be in the order that entries were accessed. The access order gets affected by put(), get(), putAll() operations, but not by operations on the collection views.

Null elements are allowed, and all the optional map operations are supported.

Note: The implementation of LinkedHashMap is not synchronized. If one thread of several threads accessing an instance modifies the map structurally, access to the map needs to be synchronized. For insertion-ordered instances a structural modification is an operation that removes or adds an entry. Access-ordered instances also are structurally modified by put(), get() and putAll() since these methods change the order of the entries. Changes in the value of an entry are not structural changes.

The Iterator that can be created by calling the iterator method throws a ConcurrentModificationException if the map is structurally changed while an iterator is used to iterate over the elements. Only the remove method that is provided by the iterator allows for removal of elements during iteration. It is not possible to guarantee that this mechanism works in all cases of unsynchronized concurrent modification. It should only be used for debugging purposes.

Summary

Public Constructors
LinkedHashMap()
Constructs a new empty LinkedHashMap instance.
LinkedHashMap(int initialCapacity)
Constructs a new LinkedHashMap instance with the specified capacity.
LinkedHashMap(int initialCapacity, float loadFactor)
Constructs a new LinkedHashMap instance with the specified capacity and load factor.
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
Constructs a new LinkedHashMap instance with the specified capacity, load factor and a flag specifying the ordering behavior.
LinkedHashMap(Map<? extends K, ? extends V> map)
Constructs a new LinkedHashMap instance containing the mappings from the specified map.
Public Methods
void clear()
Removes all mappings from this hash map, leaving it empty.
boolean containsValue(Object value)
This override is done for LinkedHashMap performance: iteration is cheaper via LinkedHashMap nxt links.
V get(Object key)
Returns the value of the mapping with the specified key.
Protected Methods
boolean removeEldestEntry(Entry<K, V> eldest)
[Expand]
Inherited Methods
From class java.util.HashMap
From class java.util.AbstractMap
From class java.lang.Object
From interface java.util.Map

Public Constructors

public LinkedHashMap ()

Since: API Level 1

Constructs a new empty LinkedHashMap instance.

public LinkedHashMap (int initialCapacity)

Since: API Level 1

Constructs a new LinkedHashMap instance with the specified capacity.

Parameters
initialCapacity the initial capacity of this map.
Throws
IllegalArgumentException when the capacity is less than zero.

public LinkedHashMap (int initialCapacity, float loadFactor)

Since: API Level 1

Constructs a new LinkedHashMap instance with the specified capacity and load factor.

Parameters
initialCapacity the initial capacity of this map.
loadFactor the initial load factor.
Throws
IllegalArgumentException when the capacity is less than zero or the load factor is less or equal to zero.

public LinkedHashMap (int initialCapacity, float loadFactor, boolean accessOrder)

Since: API Level 1

Constructs a new LinkedHashMap instance with the specified capacity, load factor and a flag specifying the ordering behavior.

Parameters
initialCapacity the initial capacity of this hash map.
loadFactor the initial load factor.
accessOrder true if the ordering should be done based on the last access (from least-recently accessed to most-recently accessed), and false if the ordering should be the order in which the entries were inserted.
Throws
IllegalArgumentException when the capacity is less than zero or the load factor is less or equal to zero.

public LinkedHashMap (Map<? extends K, ? extends V> map)

Since: API Level 1

Constructs a new LinkedHashMap instance containing the mappings from the specified map. The order of the elements is preserved.

Parameters
map the mappings to add.

Public Methods

public void clear ()

Since: API Level 1

Removes all mappings from this hash map, leaving it empty.

public boolean containsValue (Object value)

Since: API Level 1

This override is done for LinkedHashMap performance: iteration is cheaper via LinkedHashMap nxt links.

Parameters
value the value to search for.
Returns
  • true if this map contains the specified value, false otherwise.

public V get (Object key)

Since: API Level 1

Returns the value of the mapping with the specified key.

Parameters
key the key.
Returns
  • the value of the mapping with the specified key, or null if no mapping for the specified key is found.

Protected Methods

protected boolean removeEldestEntry (Entry<K, V> eldest)

Since: API Level 1