Categories: Java

IdentityHashMap class in Java

The HashMap class is similar to the IdentityHashMap class. The IdentityHashMap implements the Map interface using Hashtable, and when comparing keys, it uses reference-equality rather than object-equality (and values). This class is not intended to be a general-purpose Map implementation. This class is used when the user wants to compare objects by reference. It is part of java.util package.

Constructors of the IdentityHashMap class:
ConstructorDescription
IdentityHashMap()Creates a new, empty identity hash map with a default maximum expected size (21).
IdentityHashMap(int expectedMaxSize)Creates a new, empty map with the specified maximum size.
IdentityHashMap(Map m)Creates a new identity hash map with the key-value mappings from the specified map.
Methods of AbstractList Class:
Method Description
clear()This function removes all mappings from this map.
clone()This function returns a shallow copy of this identity hash map: the keys and values are not cloned.
containsKey(Object key)This function determines whether the specified object reference is a key in this identity hash map.
containsValue(Object value)The specified object reference is checked to see if it is a value in this identity hash map.
entrySet()This method returns a Set view of the mappings in this map.
equals(Object o)For equality, compares the specified object to this map.
get(Object key)Returns the value to which the specified key is mapped, or null if there is no mapping for the key in this map.
hashCode()Returns the hash code value for this map.
isEmpty()If this identity hash map contains no key-value mappings, this function returns true.
keySet()This method returns an identity-based set view of the keys in this map.
put(K key, V value)In this identity hash map, the specified value is associated with the specified key.
putAll(Map<? extends K,? extends V> m)All mappings from the specified map are copied to this map.
remove(Object key)If present removes the mapping for this key from this map.
size()The number of key-value mappings in this identity hash map is returned.
values()This method returns a Collection view of the values in this map.
Example:
// Java code to illustrate
// adding elements to IdentityHashMap
import java.util.*;

public class Coderz{

 public static void main(String[] args)
 {
  // Creating an empty IdentityHashMap
  Map<Integer, String> id
   = new IdentityHashMap<Integer, String>();

  // Mapping string values to int keys
  // using put() method
  id.put(10, "A");
  id.put(15, "4");
  id.put(20, "Java");
  id.put(25, "Month");
  id.put(30, "cake");

  // Displaying the IdentityHashMap
  System.out.println("Initial Mappings are: "
      + id);

  // Inserting existing key along with new value
  // previous value gets returned and stored in
  // returned_value
  String returned_value
   = (String)id.put(20, "All");

  // Verifying the returned value
  System.out.println("Returned value is: "
      + returned_value);

  // Displaying the new map
  System.out.println("New map is: " + id);

  // Creating a new Identityhash map and copying
  Map<Integer, String> new_Id
   = new IdentityHashMap<Integer, String>();
  new_Id.putAll(id);

  // Displaying the final IdentityHashMap
  System.out.println("The new map: "
      + new_Id);
   returned_value =(String)id.remove(10);
 
        // Verifying the returned value
        System.out.println("Returned value is: " +
                                    returned_value);
                                     Iterator<IdentityHashMap.Entry<Integer, String> >
            itr = id.entrySet().iterator();
 
        // The hasNext() method is used to check if there is
        // a next element The next() method is used to
        // retrieve the next element
        while (itr.hasNext()) {
            IdentityHashMap.Entry<Integer, String> entry
                = itr.next();
            System.out.println("Key = " + entry.getKey()
                               + ", Value = "
                               + entry.getValue());
        }
 }
}
Output:
Initial Mappings are: {30=cake, 10=A, 15=4, 25=Month, 20=Java}
Returned value is: Java
New map is: {30=cake, 10=A, 15=4, 25=Month, 20=All}
The new map: {30=cake, 10=A, 15=4, 25=Month, 20=All}
Returned value is: A
Key = 30, Value = cake
Key = 15, Value = 4
Key = 25, Value = Month
Key = 20, Value = All

Note: also read about the EnumSet in Java

Follow Me

If you like my post, please follow me to read my latest post on programming and technology.

https://www.instagram.com/coderz.py/

https://www.facebook.com/coderz.py

View Comments

Share
Published by
Rabecca Fatima

Recent Posts

Select a Random Element from a Stream

You are given a stream of elements that is too large to fit into memory.…

1 day ago

Estimate π Using Monte Carlo Method

The formula for the area of a circle is given by πr². Use the Monte…

3 weeks ago

Longest Substring with K Distinct Characters

Given an integer k and a string s, write a function to determine the length…

3 weeks ago

Staircase Climbing Ways

There is a staircase with N steps, and you can ascend either 1 step or…

4 weeks ago

Autocomplete System Implementation

Build an autocomplete system that, given a query string s and a set of possible…

4 weeks ago

Job Scheduler Implementation

Design a job scheduler that accepts a function f and an integer n. The scheduler…

4 weeks ago