×

Java HashMap

Java HashMap extends AbstractMap and implements Map interface. It is the collection of multiple entries where an entry consists of key and value pair. The HashMap can contain only one null key but many null values. It contains unique keys. It maintains no order. The initial capacity is 16, and the load factor is 0.75f. It can have multiple duplicate values.

Structure of HashMap

HashMap consist of the array of node and node is the class which contains 4 fields:
  1. Int Hash.
  2. K key.
  3. V value.
  4. Node next.

Declaration of HashMap

It uses the java.util. HashMap class. The declaration of HashMap is:
HashMap<String, String> hm= new HashMap<String, String> ();
hm -> it holds the reference of the objects.

Constructors in HashMap:

  • HashMap (): This is the default constructor with initial capacity is 16, and the load factor is 0.75f.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hma.put(1, "C");
hma.put(2, "C++");
hma.put(3, "Java");
System.out.println("Values of hma:" + hma); 
Output:
Values of hma :{ 1=C, 2=C++, 3=Java}} }
  • HashMap (int capacity): It is used to create the HashMap with specified capacity, and load factor is 0.75.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma= new HashMap<Integer, String> (3);
hma.put(1, "C");
hma.put(2, "C++");
hma.put(3, "Java");
System.out.println("Values of hma:" + hma); 
} }
Output:
Values of hma: {1=C, 2=C++, 3=Java}
  • HashMap (int capacity, float load factor): It is used to create the HashMap with specified capacity and load factor.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> (3,0.5f);
hma.put(1, "C");
hma.put(2, "C++");
hma.put(3, "Java");
System.out.println("Values of hma:" + hma); 
} }
Output:
Values of hma: {1=C, 2=C++, 3=Java}
  • HashMap (Map map): It is used to create the HashMap by using the map object.
Example:
import java.util.*;
public class HashMapExample {
public static void main(String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>(3, 0.5f);
hm.put(1, "C");
hm.put(2, "C++");
hm.put(3, "Java");
System.out.println("Values of hm:” + hm);
HashMap<Integer, String> language = new HashMap<Integer, String>(hm);
System.out.println("Values of language:" + language);
}}
Output:
Values of hm :{ 1=C, 2=C++, 3=Java}
Values of language :{ 1=C, 2=C++, 3=Java}

Time Complexity of HashMap:

The time complexity of HashMap operations is to provide Constant time. Iteration depends on the capacity of HashMap and the numbers of key-value pairs. It is directly proportional to Capacity + Size.

Methods of HashMap:

  1. clear (): It is used to remove all mapping from the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main(String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hm.put(1, "C");
hm.put(2, "C++");
hm.put(3, "Java");
System.out.println("Values of hm:" + hm);
hm.clear();
System.out.println("After clear the map:"+ hm);
}}
Output:
Values of hm: {1=C, 2=C++, 3=Java}
After clear the map :{}
  1. get (Object key): It is used to get the value of a particular key from the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main(String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>();
hma.put(1, "C");
hma.put(2, "C++");
hma.put(3, "Java");
System.out.println("Values of hma: " + hma);
System.out.println("The value in the map: "+ hma.get(3));
} }
Output:
Values of hma: {1=C, 2=C++, 3=Java}
The value in the map: Java
  1. put(object K, object V): It is used to insert the value of the specified key in the Map.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
hma.put (4,"Python");
System.out.println ("The value is:"+hma);
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
The value is: {1=C, 2=C++, 3=Java, 4=Python}
  1. containsKey(Object K): It returns true if the specified key is present on the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main(String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>();
hma.put(1, "C");
hma.put(2, "C++");
hma.put(3, "Java");
System.out.println("Values of hma: " + hma);
System.out.println("Is map contains the key: "+hma.containsKey (2));
System.out.println("Is map contains the key: "+hma.containsKey (8));
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
Is map contains the key: true
Is map contains the key: false
  1. containsValue (object V): It returns true if the specified value is present on the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
System.out.println ("Is map contains the value: "+hma.containsValue ("Python"));
System.out.println ("Is map contains the value: "+hma.containsValue ("C++"));
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
Is map contains the value: false
Is map contains the value: true
  1. clone (): This is used to return the same copy of the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
hma.clone ();
System.out.println (“Clone map:”+hma);
} }
Output:
Values of hma: {1=C, 2=C++, 3=Java}
Clone map: {1=C, 2=C++, 3=Java}
  1. isEmpty (): It is used to return true if the map is empty otherwise false.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
System.out.println ("Is map empty: "+hma.isEmpty ());
hma.clear ();
System.out.println ("Is map empty: "+hma.isEmpty ());
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
Is map empty: false
Is map empty: true
  1. size (): This method is used to return the size of the map.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
System.out.println ("Size of map: "+hma.size ());
hma.clear ();
System.out.println ("Size of map: "+hma.size ());
} }
Output:
Values of hma: {1=C, 2=C++, 3=Java}
Size of map: 3
Size of map: 0
  1. putAll (Map m): This is used to copy all elements from the map to another map.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String>();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
HashMap<Integer, String> hm1 = new HashMap<Integer, String> ();
hm1.putAll (hm);
System.out.println ("The new map: "+hm1);
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
The new map: {1=C, 2=C++, 3=Java}
  1. remove (object K): This is used to remove the value of the particular key.
Example:
import java.util.*;
public class HashMapExample {
public static void main (String [] args) {
HashMap<Integer, String> hma = new HashMap<Integer, String> ();
hma.put (1, "C");
hma.put (2, "C++");
hma.put (3, "Java");
System.out.println ("Values of hma: " + hma);
hma.remove (3);
System.out.println ("After removing: "+hma);
} }
Output:
Values of hm: {1=C, 2=C++, 3=Java}
After removing: {1=C, 2=C++}

Difference between HashMap and HashTable:

HashMap HashTable
1. Traversed by Iterator. 1. Traversed by Enumerator and Iterator.
2. Inherits AbstractMap Class. 2. Inherits Dictionary Class.
3. Hashmap permits one null key and multiple null values. 3. hashTable do not allow one null key and value.
4. HashMap is not synchronized. 4. HashTable is synchronized.
5. Performance is fast. 5. Performance is slow.
6. Complexity is O (1). 6. Complexity is O (1).
7. Not legacy and introduced in 1.2v. 7. Legacy and introduced in 1.0v.

Traverse through a HashMap:

HashMap internally uses the Hashing technique. There are three ways to traverse in HashMap:
  1. using iterator:
Example:
import java.util.*;
public class IteratorExample {
public static void main (String [] args) {
HashMap<String, Integer> hm = new HashMap<String, Integer> ();
hm.put ("TutorialandExample", 54);
hm.put ("A computer portal", 80);
hm.put ("For Students", 82);
System.out.println ("Created HashMap is: " + hm);
Iterator hmi= hm.entrySet ().iterator ();
System.out.println ("HashMap after adding :");
while (hmi.hasNext ()) {
Map.Entry m = (Map.Entry) hmi.next ();
int marks = ((int)m.getValue () + 10);
System.out.println (m.getKey () + “: “+ marks);
} } }
Output:
Created HashMap is: {For Students=82, A computer portal=80, TutorialandExample=54}
HashMap after adding bonus marks:
For Students: 92
A computer portal: 90
TutorialandExample: 64
  1. Using for-each loop:
Example:
import java.util.*;
public class ForEachExample {
public static void main (String [] args) {
HashMap<String, Integer> hm = new HashMap<String, Integer> ();
hm.put ("TutorialandExample", 54);
hm.put ("A computer portal", 80);
hm.put ("For Students", 82);
System.out.println ("Created HashMap is: " + hm);
for (Map.Entry m: hm.entrySet ()) {
String key = (String) m.getKey();
int value = ((int) m.getValue () + 10);
System.out.println (key + “: “+ value);
} } }
Output:
Created HashMap is: {For Students=82, A computer portal=80, TutorialandExample=54}
For Students: 92
A computer portal: 90
TutorialandExample: 64
  1. Using forEach () method:
Example:
import java.util.*;
public class ForEachExample {
public static void main (String [] args) {
HashMap<String, Integer> hm = new HashMap<String, Integer> ();
hm.put ("TutorialandExample", 54);
hm.put ("A computer portal", 80);
hm.put ("For Students", 82);
System.out.println ("Created HashMap is: " + hm);
System.out.println ("HashMap after adding: ");
forEach ((k, v) -> System.out.println (k + ": "+ (v + 10)));
} }
Output:
Created HashMap is: {For Students=82, A computer portal=80, TutorialandExample=54}
HashMap after adding:
For Students: 92
A computer portal: 90
TutorialandExample: 64

Related Topics

How to write basic Java Programs

Java Basic Programs In this section, we will learn how to write basic Java programs. But first we need to take care of the following requirement list. To execute a Java program,...

4 minutes read.

Class definition in Java

The class definition in Java Java is an object-oriented programming language. We essentially know that programming languages based on object-oriented paradigms have classes and objects in their concepts as main, which...

6 minutes read.

Java Buffer Reader

When a variable cannot change its value during run time is called a Static way of programming. In this programming, a variable is directly assigned to a value. Program: Import java.io.*; class  A {  ...

4 minutes read.

Java File Extension

A computer file's suffix is called its file extension. It is easily recognized since it appears immediately after a period (.) in the file name. Consider the file Demo.java as an...

3 minutes read.

Differences between Set and List in Java

Set in Java: The Java. util package contains an interface called the set. The set interface expands the Collection interface. A collection interface is an unordered collection of List where duplicates...

6 minutes read.

AbstractSet Class in Java

The AbstractSet class is used for the implementation of the Abstract Collection class and interface. It is the part of Collection Frameworks. In the AbstractSet, the implementation is same as the...

3 minutes read.

Deadlock Prevention and avoidance in Java

This tutorial will discuss deadlock prevention and Avoidance in Java programming language. Introduction Multithreading in Java includes deadlock. We can multitask by running several threads concurrently in the multithreading environment. Deadlock occurs...

4 minutes read.

Java String copyValueOf() method

copyValueOf() method returns a String that holds the character sequence of the character array. Syntax: copyValueOf(char[] data) Parameters: data : the character array i.e. String Returns: It returns a String that contains the characters of the...

2 minutes read.

India Map Pattern in Java

India Map Pattern is the pattern we'll code now using Java, as demonstrated. We will use a star in Java to print our India map.The specialty is that we will only...

4 minutes read.

Java Integer numberOfTrailingZeros() method

The numberOfTrailingZeros()  method of Java Integer class returns the total number of zero bits following the lowest-order one-bit in the 2’s complement binary representation of the specified int value. Syntax public static...

1 minute read.

String Manipulation in Java

String Manipulation in Java In Java, string manipulation is a common task performed by programmer. Java String class provides many built-in functions that are used to manipulate string. The manipulation of...

4 minutes read.

Constructor in Java with Example

Java Constructor  The constructor is used for object initialization. It's a block of code that initializes a newly created object. It contains a collection of statements that are executed at the...

5 minutes read.

Java vs JavaScript

Java Vs JavaScript Java and JavaScript, both play an important role in the field of Computer Technology. Most people think JavaScript is a part of Java. But it is not entirely...

4 minutes read.

Java Math acos() Method

The acos() method of Math class computes the trigonometric Arc Cosine (inverse of cosine ) of an angle. The value returned is between 0.0 to pi. Syntax: public static double acos(double a) Parameters: The...

1 minute read.

GCD of Different SubSequences in Java

The positive numbers are provided in an array called inArr. The aim is to determine the number of distinct GCDs (Greatest Common Divisors) in each subsequence present in the input...

4 minutes read.

Relatively Prime in Java

In this article, you will be very well equipped with a knowledge of a relatively prime number and also Java programs to determine whether a given integer is a relatively...

4 minutes read.

Java Thread Priority in Multithreading

As we realise, java, being object-situated, works inside a multithreading climate in which the string scheduler relegates the processor to a string in light of the need for a string....

6 minutes read.

Polygonal Number in Java

What does a Java Polygonal Number Mean? In mathematics, a polygonal number refers to a number that is expressed through dots or pebbles arranged in a regular polygonal pattern. Alphas are...

4 minutes read.

Implementing Queue Using Array in Java

We can implement queue by using array in Java. The queue is a linear data structure, and the array is one of the simplest data structures. Before implementing a queue...

4 minutes read.

The final Keyword in Java

The final keyword is employed in several instances. Firstly, the non-access modifier final only applies to variables, methods, and classes. The final can be used in the following situations. Final Variables When...

6 minutes read.