×

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

Get yesterdays date by no of days in Java

In this tutorial, we are going to learn how to get yesterday’s date by the no of days in Java. Using the Calendar class, one can get the current date....

1 minute read.

Java Anon Proxy

The Java Anon Proxy (JAP), also known as JonDonym, is a proxy system designed to enable Web browsing with revocable (the use of or publication under a pseudonym, a false...

4 minutes read.

Java Session

Session indicates interval of time. A session is a simple  time interval in which servers and client interacts. To maintain the state of the client or user we use technologies...

5 minutes read.

Java Boolean logicalAnd() Method

The logicalAnd() method of Java Boolean class returns the result of implementing logicalAND operation on the specified Boolean operands. Syntax:public static boolean logicalAnd (boolean a, boolean b) Parameters:The parameters ‘a’ and ‘b’...

2 minutes read.

Java Font

The font is a Java class that is a part of java.awt package. The Serializable interface is implemented by it. The direct recognized child of a Java Font class is...

8 minutes read.

How to get ASCII value of char in Java

Introduction: On this application, you will learn how to find and show the ASCII value of char in Java. That is done with the use of type-casting and also everyday...

4 minutes read.

Java String format() method

format() method returns a formatted String based on the given locale,specified format and arguments. Syntax: public static String format(String format , Object… args) Parameter: locale : It specifies locale value to be applied on...

2 minutes read.

How to Solve the Deprecated Error in Java?

Deprecated Java methods should not be used because they are deprecated (often, there are better, more modern alternatives). API update. Until now, Java has kept everything backward compatible and never...

3 minutes read.

Pyramid Program in Java

Pyramid Program in Java In the previous section, we have discussed about the number pattern programs in Java. The logic for the number pattern and pyramid pattern is the same except...

2 minutes read.

Java Integer toHexString() method

The toHexString() method of Java Integer class returns a string representing the specified int argument as an unsigned integer in base 16. Syntax public static String toHexString (int  i)  Parameters The parameter ‘i’ represents...

1 minute read.

Java Integer sum() method

The sum() method of Java Integer class add the two specified integers values. It returns the same result as given by + operator. Syntax public static int sum (int a, int b)  Parameters The...

1 minute read.

Fibodiv Number in Java

Before understanding the concept of the fibodiv number, one should realize what the Fibonacci number is. What are Fibonacci Numbers? The Fibonacci sequence of whole numbers is composed of the numbers 0,...

5 minutes read.

Java String replaceAll() method

Java String replaceAll() method returns a String replacing all the sequence of characters matching regular expression i.e regex and replacement string. Syntax: public String replaceAll(String regex, String replacement) Parameters: regex : regular expression replacement :...

1 minute read.

Java.net.SocketException

Exception The problem occurred during the execution of the program. If an exception occurs in the program, the program gets terminated. To skip the exception occurring statements, we have to handle...

4 minutes read.

Package naming convention in Java

It is conceivable that many programmers will use the same name for various types, given that Java programmers from all over the world create classes and interfaces. For illustration, suppose...

4 minutes read.

Advantages of Generics in Java

Generic offers a variety of benefits. The programmer's life is made easier by using generic Java. In this section, we are going to discuss about Java's generic’s and its benefits. 1....

4 minutes read.

Java Math floorMod() Method

The floorMod() method of Math class returns the floor modulus of the specified arguments. It firstly divides the dividend and divisor and then returns an integer that is equal to...

1 minute read.

Sorting Algorithms in Java

Sorting Algorithms in Java Sorting is the technique that puts the elements of an array or list either in descending or ascending order. For example, take an array A, whose elements...

3 minutes read.

Java Linters

When it comes to programming, everyone makes mistakes. Errors are bad for developers since they are difficult to handle. But handling as many as possible errors will bring out the...

6 minutes read.

Java Strings

String class is the most used class in Java programming language. The string is the sequence of characters, which is treated as objects in Java. Creating String objects We create String objects...

5 minutes read.