Java IdentityHashMap Class


The Java IdentityHashMap class implements the Map interface with a hash table, using reference-equality in place of object-equality when comparing keys (and values).Following are the important points about IdentityHashMap −

  • This class provides all of the optional map operations, and permits null values and the null key.

  • This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

  • In an IdentityHashMap, two keys k1 and k2 are considered equal if and only if (k1==k2), while in Map implementations (like HashMap) two keys k1 and k2 are considered equal if and only if (k1==null ? k2==null : k1.equals(k2)).

Class declaration

Following is the declaration for java.util.IdentityHashMap class −

public class IdentityHashMap<K,V>
   extends AbstractMap<K,V>
   implements Map<K,V>, Serializable, Cloneable

Class constructors

Sr.No. Constructor & Description


This constructs a new, empty identity hash map with a default expected maximum size (21).


IdentityHashMap(int expectedMaxSize)

This constructs a new, empty map with the specified expected maximum size.


IdentityHashMap(Map<? extends K,? extends V> m)

This constructs a new identity hash map containing the keys-value mappings in the specified map.

Class methods

Sr.No. Method & Description
1 void clear()

This method removes all of the mappings from this map.

2 Object clone()

This method returns a shallow copy of this identity hash map: the keys and values themselves are not cloned.

3 boolean containsKey(Object key)

This method tests whether the specified object reference is a key in this identity hash map.

4 boolean containsValue(Object value)

This method tests whether the specified object reference is a value in this identity hash map.

5 Set<Map.Entry<K,V>> entrySet()

This method returns a Set view of the mappings contained in this map.

6 boolean equals(Object o)

This method compares the specified object with this map for equality.

7 V get(Object key)

This method returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

8 int hashCode()

This method returns returns the hash code value for this map.

9 boolean isEmpty()

This method returns true if this identity hash map contains no key-value mappings.

10 Set<K> keySet()

This method returns an identity-based set view of the keys contained in this map.

11 V put(K key, V value)

This method associates the specified value with the specified key in this identity hash map.

12 void putAll(Map<? extends K,? extends V> m)

This method copies all of the mappings from the specified map to this map.

13 V remove(Object key)

This method removes the mapping for this key from this map if present.

14 int size()

This method returns the number of key-value mappings in this identity hash map.

15 Collection<V> values()

This method returns returns a Collection view of the values contained in this map.

Methods inherited

This class inherits methods from the following classes −

  • java.util.AbstractMap
  • java.util.Object

Adding a Key-Value Mapping in an IdentityHashMap Example

The following example shows the usage of Java IdentityHashMap put() method to put few values in a Map. We've created a Map object of Integer,Integer. Then few entries are added using put() method and then map is printed.

package com.tutorialspoint;

import java.util.IdentityHashMap;

public class IdentityHashMapDemo {
   public static void main(String args[]) {
      // create identity map
      IdentityHashMap<Integer,Integer> newmap = new IdentityHashMap<>();

      // populate identity map
      newmap.put(1, 1);
      newmap.put(2, 2);
      newmap.put(3, 3); 

      System.out.println("Map elements: " + newmap);

Let us compile and run the above program, this will produce the following result.

Map elements: {2=2, 3=3, 1=1}