java.io.Serializable
, java.lang.Cloneable
, java.util.Map
, IterableMap
public class IdentityMap extends AbstractHashedMap implements java.io.Serializable, java.lang.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 | 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
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 | 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(java.util.Map map) |
Constructor copying elements from another map.
|
Modifier and Type | Method | Description |
---|---|---|
java.lang.Object |
clone() |
Clones the map without cloning the keys or values.
|
protected AbstractHashedMap.HashEntry |
createEntry(AbstractHashedMap.HashEntry next,
int hashCode,
java.lang.Object key,
java.lang.Object value) |
Creates an entry to store the data.
|
protected int |
hash(java.lang.Object key) |
Gets the hash code for the key specified.
|
protected boolean |
isEqualKey(java.lang.Object key1,
java.lang.Object key2) |
Compares two keys for equals.
|
protected boolean |
isEqualValue(java.lang.Object value1,
java.lang.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 capacityjava.lang.IllegalArgumentException
- if the initial capacity is less than onepublic IdentityMap(int initialCapacity, float loadFactor)
initialCapacity
- the initial capacityloadFactor
- the load factorjava.lang.IllegalArgumentException
- if the initial capacity is less than onejava.lang.IllegalArgumentException
- if the load factor is less than zeropublic IdentityMap(java.util.Map map)
map
- the map to copyjava.lang.NullPointerException
- if the map is nullprotected int hash(java.lang.Object key)
hash
in class AbstractHashedMap
key
- the key to get a hash code forprotected boolean isEqualKey(java.lang.Object key1, java.lang.Object key2)
==
.isEqualKey
in class AbstractHashedMap
key1
- the first key to comparekey2
- the second key to compareprotected boolean isEqualValue(java.lang.Object value1, java.lang.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, java.lang.Object key, java.lang.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 java.lang.Object clone()
clone
in class AbstractHashedMap
Copyright © 2001-2017 Apache Software Foundation. All Rights Reserved.