org.apache.commons.collections.map

## Class IdentityMap

- java.lang.Object
- - java.util.AbstractMap
  - - org.apache.commons.collections.map.AbstractHashedMap
    - - org.apache.commons.collections.map.IdentityMap

- All Implemented Interfaces:
    Serializable, Cloneable, Map, IterableMap

      public class IdentityMap
      extends AbstractHashedMap
      implements Serializable, Cloneable

  A `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.

  Since:
    Commons Collections 3.0
  Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
  Author:
    java util HashMap, Stephen Colebourne
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `IdentityMap.IdentityEntry` HashEntry

    - ### Nested classes/interfaces inherited from class org.apache.commons.collections.map.AbstractHashedMap

      `AbstractHashedMap.EntrySet, AbstractHashedMap.EntrySetIterator, AbstractHashedMap.HashEntry, AbstractHashedMap.HashIterator, AbstractHashedMap.HashMapIterator, AbstractHashedMap.KeySet, AbstractHashedMap.KeySetIterator, AbstractHashedMap.Values, AbstractHashedMap.ValuesIterator`

    - ### Nested classes/interfaces inherited from class java.util.AbstractMap

      `AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry`

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `Map.Entry`

  - ### Field Summary

    - ### Fields inherited from class org.apache.commons.collections.map.AbstractHashedMap

      `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 Summary

    Constructors
    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.

  - ### Method Summary

    Methods
    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.

    - ### Methods inherited from class org.apache.commons.collections.map.AbstractHashedMap

      `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`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IdentityMap

          public IdentityMap()

      Constructs a new empty map with default size and load factor.

    - #### IdentityMap

          public IdentityMap(int initialCapacity)

      Constructs a new, empty map with the specified initial capacity.
      Parameters:
        `initialCapacity` - the initial capacity
      Throws:
        `IllegalArgumentException` - if the initial capacity is less than one

    - #### IdentityMap

          public IdentityMap(int initialCapacity,
                     float loadFactor)

      Constructs a new, empty map with the specified initial capacity and load factor.
      Parameters:
        `initialCapacity` - the initial capacity
        `loadFactor` - the load factor
      Throws:
        `IllegalArgumentException` - if the initial capacity is less than one
        `IllegalArgumentException` - if the load factor is less than zero

    - #### IdentityMap

          public IdentityMap(Map map)

      Constructor copying elements from another map.
      Parameters:
        `map` - the map to copy
      Throws:
        `NullPointerException` - if the map is null

  - ### Method Detail

    - #### hash

          protected int hash(Object key)

      Gets the hash code for the key specified. This implementation uses the identity hash code.
      Overrides:
        `hash` in class `AbstractHashedMap`
      Parameters:
        `key` - the key to get a hash code for
      Returns:
        the hash code

    - #### isEqualKey

          protected boolean isEqualKey(Object key1,
                           Object key2)

      Compares two keys for equals. This implementation uses `==`.
      Overrides:
        `isEqualKey` in class `AbstractHashedMap`
      Parameters:
        `key1` - the first key to compare
        `key2` - the second key to compare
      Returns:
        true if equal by identity

    - #### isEqualValue

          protected boolean isEqualValue(Object value1,
                             Object value2)

      Compares two values for equals. This implementation uses `==`.
      Overrides:
        `isEqualValue` in class `AbstractHashedMap`
      Parameters:
        `value1` - the first value to compare
        `value2` - the second value to compare
      Returns:
        true if equal by identity

    - #### createEntry

          protected AbstractHashedMap.HashEntry createEntry(AbstractHashedMap.HashEntry next,
                                                int hashCode,
                                                Object key,
                                                Object value)

      Creates an entry to store the data. This implementation creates an IdentityEntry instance.
      Overrides:
        `createEntry` in class `AbstractHashedMap`
      Parameters:
        `next` - the next entry in sequence
        `hashCode` - the hash code to use
        `key` - the key to store
        `value` - the value to store
      Returns:
        the newly created entry

    - #### clone

          public Object clone()

      Clones the map without cloning the keys or values.
      Overrides:
        `clone` in class `AbstractHashedMap`
      Returns:
        a shallow clone

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.