public class IdentityMap<K,V> extends AbstractHashedMap<K,V> implements Serializable, Cloneable
Map implementation that matches keys and values based
on == not equals().
This map will violate the detail of various Map and map view contracts.
As a general rule, don't compare this map to other maps. In particular, you can't
use decorators like
Note that IdentityMap is not synchronized and is not thread-safe.
If you wish to use this map from multiple threads concurrently, you must use
appropriate synchronization. The simplest approach is to wrap this map
using ListOrderedMap on it, which silently assume that these
contracts are fulfilled.
Collections.synchronizedMap(Map). This class may throw
exceptions when accessed by concurrent threads without synchronization.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
IdentityMap.IdentityEntry<K,V>
HashEntry
|
AbstractHashedMap.EntrySet<K,V>, AbstractHashedMap.EntrySetIterator<K,V>, AbstractHashedMap.HashEntry<K,V>, AbstractHashedMap.HashIterator<K,V>, AbstractHashedMap.HashMapIterator<K,V>, AbstractHashedMap.KeySet<K>, AbstractHashedMap.KeySetIterator<K>, AbstractHashedMap.Values<V>, AbstractHashedMap.ValuesIterator<V>AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>data, DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_THRESHOLD, entrySet, GETKEY_INVALID, GETVALUE_INVALID, keySet, loadFactor, MAXIMUM_CAPACITY, modCount, NO_NEXT_ENTRY, NO_PREVIOUS_ENTRY, NULL, REMOVE_INVALID, SETVALUE_INVALID, size, threshold, values| Constructor and Description |
|---|
IdentityMap()
Constructs a new empty map with default size and load factor.
|
IdentityMap(int initialCapacity)
Constructs a new, empty map with the specified initial capacity.
|
IdentityMap(int initialCapacity,
float loadFactor)
Constructs a new, empty map with the specified initial capacity and
load factor.
|
IdentityMap(Map<K,V> map)
Constructor copying elements from another map.
|
| Modifier and Type | Method and Description |
|---|---|
IdentityMap<K,V> |
clone()
Clones the map without cloning the keys or values.
|
protected IdentityMap.IdentityEntry<K,V> |
createEntry(AbstractHashedMap.HashEntry<K,V> next,
int hashCode,
K key,
V value)
Creates an entry to store the data.
|
protected int |
hash(Object key)
Gets the hash code for the key specified.
|
protected boolean |
isEqualKey(Object key1,
Object key2)
Compares two keys for equals.
|
protected boolean |
isEqualValue(Object value1,
Object value2)
Compares two values for equals.
|
addEntry, addMapping, calculateNewCapacity, calculateThreshold, checkCapacity, clear, containsKey, containsValue, convertKey, createEntrySetIterator, createKeySetIterator, createValuesIterator, destroyEntry, doReadObject, doWriteObject, ensureCapacity, entryHashCode, entryKey, entryNext, entrySet, entryValue, equals, get, getEntry, hashCode, hashIndex, init, isEmpty, keySet, mapIterator, put, putAll, remove, removeEntry, removeMapping, reuseEntry, size, toString, updateEntry, valuespublic IdentityMap()
public IdentityMap(int initialCapacity)
initialCapacity - the initial capacityIllegalArgumentException - if the initial capacity is negativepublic IdentityMap(int initialCapacity, float loadFactor)
initialCapacity - the initial capacityloadFactor - the load factorIllegalArgumentException - if the initial capacity is negativeIllegalArgumentException - if the load factor is less than zeropublic IdentityMap(Map<K,V> map)
map - the map to copyNullPointerException - if the map is nullprotected int hash(Object key)
hash in class AbstractHashedMap<K,V>key - the key to get a hash code forprotected boolean isEqualKey(Object key1, Object key2)
==.isEqualKey in class AbstractHashedMap<K,V>key1 - the first key to comparekey2 - the second key to compareprotected boolean isEqualValue(Object value1, Object value2)
==.isEqualValue in class AbstractHashedMap<K,V>value1 - the first value to comparevalue2 - the second value to compareprotected IdentityMap.IdentityEntry<K,V> createEntry(AbstractHashedMap.HashEntry<K,V> next, int hashCode, K key, V value)
createEntry in class AbstractHashedMap<K,V>next - the next entry in sequencehashCode - the hash code to usekey - the key to storevalue - the value to storepublic IdentityMap<K,V> clone()
clone in class AbstractHashedMap<K,V>Copyright © 2001-2013 The Apache Software Foundation. All Rights Reserved.