public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>
Note: This class intentionally violates the general contract of Map
's on comparing objects by their equals
method.
IdentityHashMap uses open addressing (linear probing in particular) for collision resolution. This is different from HashMap which uses Chaining.
Like HashMap, IdentityHashMap is not thread safe, so access by multiple threads must be synchronized by an external mechanism such as Collections.synchronizedMap.
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Constructor and Description |
---|
IdentityHashMap()
Creates an IdentityHashMap with default expected maximum size.
|
IdentityHashMap(int maxSize)
Creates an IdentityHashMap with the specified maximum size parameter.
|
IdentityHashMap(Map<? extends K,? extends V> map)
Creates an IdentityHashMap using the given map as initial values.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes all elements from this map, leaving it empty.
|
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.
|
boolean |
equals(Object object)
Compares this map with other objects.
|
V |
get(Object key)
Returns the value of the mapping with the specified key.
|
boolean |
isEmpty()
Returns whether this IdentityHashMap has no elements.
|
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 mappings in this IdentityHashMap.
|
Collection<V> |
values()
Returns a collection of the values contained in this map.
|
hashCode, toString
public IdentityHashMap()
public IdentityHashMap(int maxSize)
maxSize
- The estimated maximum number of entries that will be put in
this map.public void clear()
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)
putAll
in interface Map<K,V>
putAll
in class AbstractMap<K,V>
map
- the map to copy mappings from.NullPointerException
- if map
is null
.public Set<Map.Entry<K,V>> entrySet()
Map.Entry
. As the set is backed by this map,
changes in one will be reflected in the other.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.
public boolean equals(Object object)
equals
in interface Map<K,V>
equals
in class AbstractMap<K,V>
object
- the object to compare to.AbstractMap.hashCode()
,
AbstractMap.entrySet()
public boolean isEmpty()