public class IdentityMap extends AbstractHashedMap 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.
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 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
HashEntry
|
AbstractHashedMap.EntrySet, AbstractHashedMap.EntrySetIterator, AbstractHashedMap.HashEntry, AbstractHashedMap.HashIterator, AbstractHashedMap.HashMapIterator, AbstractHashedMap.KeySet, AbstractHashedMap.KeySetIterator, AbstractHashedMap.Values, AbstractHashedMap.ValuesIterator
AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry
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 map)
Constructor copying elements from another map.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
Clones the map without cloning the keys or values.
|
protected AbstractHashedMap.HashEntry |
createEntry(AbstractHashedMap.HashEntry next,
int hashCode,
Object key,
Object 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, values
public IdentityMap()
public IdentityMap(int initialCapacity)
initialCapacity
- the initial capacityIllegalArgumentException
- if the initial capacity is less than onepublic IdentityMap(int initialCapacity, float loadFactor)
initialCapacity
- the initial capacityloadFactor
- the load factorIllegalArgumentException
- if the initial capacity is less than oneIllegalArgumentException
- if the load factor is less than zeropublic IdentityMap(Map map)
map
- the map to copyNullPointerException
- if the map is nullprotected int hash(Object key)
hash
in class AbstractHashedMap
key
- the key to get a hash code forprotected boolean isEqualKey(Object key1, Object key2)
==
.isEqualKey
in class AbstractHashedMap
key1
- the first key to comparekey2
- the second key to compareprotected boolean isEqualValue(Object value1, Object value2)
==
.isEqualValue
in class AbstractHashedMap
value1
- the first value to comparevalue2
- the second value to compareprotected AbstractHashedMap.HashEntry createEntry(AbstractHashedMap.HashEntry next, int hashCode, Object key, Object value)
createEntry
in class AbstractHashedMap
next
- the next entry in sequencehashCode
- the hash code to usekey
- the key to storevalue
- the value to storepublic Object clone()
clone
in class AbstractHashedMap
Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.