Java IdentityHashMap Class



Introduction

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
1

IdentityHashMap()

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

2

IdentityHashMap(int expectedMaxSize)

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

3

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
1void clear()

This method removes all of the mappings from this map.

2Object clone()

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

3boolean containsKey(Object key)

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

4boolean containsValue(Object value)

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

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

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

6boolean equals(Object o)

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

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

8int hashCode()

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

9boolean isEmpty()

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

10Set<K> keySet()

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

11V put(K key, V value)

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

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

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

13V remove(Object key)

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

14int size()

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

15Collection<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} 
Advertisements
close