## 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:
  Cloneable, IterableMap, Map, Serializable

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.

Since:
  Commons Collections 3.0
Version:
  $Revision: 1.5 $ $Date: 2004/02/18 01:13:19 $
Author:
  java util HashMap, Stephen Colebourne
See Also:
  Serialized Form

Nested Class Summary
`protected static class` `IdentityMap.IdentityEntry` HashEntry

Nested classes 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 inherited from class 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
`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
`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-2005 Apache Software Foundation. All Rights Reserved.