K
- the type of keys maintained by this mapV
- the type of mapped valuespublic class HashMap<K,V> extends AbstractMap<K,V> implements Cloneable, Serializable
Map
. All optional operations are supported.
All elements are permitted as keys or values, including null.
Note that the iteration order for HashMap is non-deterministic. If you want
deterministic iteration, use LinkedHashMap
.
Note: the implementation of HashMap
is not synchronized.
If one thread of several threads accessing an instance modifies the map
structurally, access to the map needs to be synchronized. A structural
modification is an operation that adds or removes an entry. Changes in
the value of an entry are not structural changes.
The Iterator
created by calling the iterator
method
may throw 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.
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Constructor and Description |
---|
HashMap()
Constructs a new empty
HashMap instance. |
HashMap(int capacity)
Constructs a new
HashMap instance with the specified capacity. |
HashMap(int capacity,
float loadFactor)
Constructs a new
HashMap instance with the specified capacity and
load factor. |
HashMap(Map<? extends K,? extends V> map)
Constructs a new
HashMap instance containing the mappings from
the specified map. |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes all mappings from this hash map, leaving it empty.
|
Object |
clone()
Returns a shallow copy of this map.
|
boolean |
containsKey(Object key)
Returns whether this map contains the specified key.
|
boolean |
containsValue(Object value)
Returns whether this map contains the specified value.
|
Set<Map.Entry<K,V>> |
entrySet()
Returns a set containing all of the mappings in this map.
|
V |
get(Object key)
Returns the value of the mapping with the specified key.
|
boolean |
isEmpty()
Returns whether this map is empty.
|
Set<K> |
keySet()
Returns a set of the keys contained in this map.
|
V |
put(K key,
V value)
Maps the specified key to the specified value.
|
void |
putAll(Map<? extends K,? extends V> map)
Copies all the mappings in the specified map to this map.
|
V |
remove(Object key)
Removes the mapping with the specified key from this map.
|
int |
size()
Returns the number of elements in this map.
|
Collection<V> |
values()
Returns a collection of the values contained in this map.
|
equals, hashCode, toString
public HashMap()
HashMap
instance.public HashMap(int capacity)
HashMap
instance with the specified capacity.capacity
- the initial capacity of this hash map.IllegalArgumentException
- when the capacity is less than zero.public HashMap(int capacity, float loadFactor)
HashMap
instance with the specified capacity and
load factor.capacity
- the initial capacity of this hash map.loadFactor
- the initial load factor.IllegalArgumentException
- when the capacity is less than zero or the load factor is
less or equal to zero or NaN.public Object clone()
clone
in class AbstractMap<K,V>
public boolean isEmpty()
public int size()
public boolean containsKey(Object key)
containsKey
in interface Map<K,V>
containsKey
in class AbstractMap<K,V>
key
- the key to search for.true
if this map contains the specified key,
false
otherwise.public boolean containsValue(Object value)
containsValue
in interface Map<K,V>
containsValue
in class AbstractMap<K,V>
value
- the value to search for.true
if this map contains the specified value,
false
otherwise.public void putAll(Map<? extends K,? extends V> map)
public void clear()
public Set<K> keySet()
public Collection<V> values()
This method returns a collection which is the subclass of
AbstractCollection. The iterator method of this subclass returns a
"wrapper object" over the iterator of map's entrySet(). The size
method wraps the map's size method and the contains
method wraps
the map's containsValue method.
The collection is created when this method is called for the first time and returned in response to all subsequent calls. This method may return different collections when multiple concurrent calls occur, since no synchronization is performed.