Create Immutable HashMap in Java

In this tutorial, we will learn how to make immutable HashMap with an example.

We will see two examples to make immutable HashMap:
  • First, we will see how to create an immutable HashMap using Collections.unmodifiableMap() method with an example.
  • Second, we will see how to create an immutable HashMap using Java 9 provided Map.ofEntries() static factory method.

Create Immutable HashMap with Collections.unmodifiableMap() Method

Prior to Java 9, we create an immutable HashMap using Collections.unmodifiableMap() method like:
public class ImmutableMapExample {

    public static void main(String[] args) {

        // Creating a HashMap
        Map < String, Integer > numberMapping = new HashMap < > ();

        // Adding key-value pairs to a HashMap
        numberMapping.put("One", 1);
        numberMapping.put("Two", 2);
        numberMapping.put("Three", 3);

        Collections.unmodifiableMap(numberMapping);
        System.out.println(fruits);
    }
}
Output:
{One=1, Two=2, Three=3}

Create immutable HashMap with Java 9 Map.ofEntries() factory method

The below example shows how to create an immutable HashMap using Java 9 provided Map.ofEntries() static factory method.
import java.util.HashMap;
import java.util.Map;


public class ImmutableHashMap {

    public static void main(String[] args) {

        Map < String, String > fruits = new HashMap < String, String > ();
        fruits.put("1", "Banana");
        fruits.put("2", "Mango");
        fruits.put("3", "Apple");

        // java 9 with factory methods
        Map < String, String > map = Map.ofEntries(
            Map.entry("1", "Banana"),
            Map.entry("2", "Mango"),
            Map.entry("3", "Apple"));

        System.out.println(map);
    }
}
Output:
{1=Banana, 2=Mango, 3=Apple}

Conclusion

In this tutorial, we have seen how to make immutable HashMap using Collections.unmodifiableMap() method and Java 9 provided Map.ofEntries() static factory method with an example.

References

Comments