Skip to main content

What is an EnumMap in Java?

Updated 3 min readMarkdown
Part of seriesJava Programming
What is an EnumMap in Java?

This article will explain what an enumMap is, and how to use it in Java.

What is an EnumMap?

An EnumMap is a special form of a map. A map in Java is an interface that takes a key (K) and a value (V).

In the case of an EnumMap, the key is an enum.

An EnumMap:

  • extends the AbstractMap.

  • implements Map interface.

How to Create an enumMap

To create an enumMap, we have to import the java.util.EnumMap

public class JavaEnumMap {

    enum Colour {
        RED,
        BLUE,
        BLACK,
        GREEN
    }
}

How to Add an Element Into an Enummap

You can use the put() method to insert elements into an enumMap.

    public static void main(String[] args) {

        EnumMap<Colour, Integer> colours = new EnumMap<Colour, Integer>(Colour.class);

        colours.put(Colour.RED, 1);
        colours.put(Colour.BLUE, 2);
        colours.put(Colour.BLACK, 3);
        colours.put(Colour.GREEN, 4);
}

How to Access an Element on an Enummap

To access the elements of an enumMap, you can use:

keySet()

It prints all the keys on the map

System.out.println("Printing all keys in the map " + colours.keySet());

The result is:

Printing all keys in the map [RED, BLUE, BLACK, GREEN]

entrySet()

It prints the keys and the values in the map

System.out.println("Printing the keys and the values in the map " + colours.entrySet());

The result is:

Printing the keys and the values in the map [RED=1, BLUE=2, BLACK=3, GREEN=4]

values()

It prints the values in the map

System.out.println("Printing the values in the map " + colours.values());

The result is:

Printing the values in the map [1, 2, 3, 4]

How to Retrieve Elements From an Enummap

You can use the get() method to retrieve elements from an enumMap.

System.out.println("Retrieve the value from the enumMap " + colours.get(Colour.RED));

The result is:

Retrieve the value from the enumMap: 1

How to Remove Elements From an Enummap

To remove elements from an enumMap you can use:

remove(key)

You use the key of the enumMap to remove an element from an enumMap

System.out.println("Removing the key: " + colours.remove(Colour.GREEN));

The result is:

Removing the key: 4
The enumMap now has: {RED=1, BLUE=2}

remove(key, value)

If it exists, it removes the element from the enumMap and returns a boolean value.

System.out.println("Removing the key and the value from the enumMap: " + colours.remove(Colour.BLACK, 3));
Removing the key and the value from the enumMap: true
The enumMap now has: {RED=1, BLUE=2}

The result is:

The enumMap now has: {RED=1, BLUE=2}

How to replace an enumMap

replace(key, value)

It replaces the old value with a new value.

colours.replace(Colour.RED, 5);

System.out.println("The new enum now has: " + colours);

Result is:

The new enum now has: {RED=5, BLUE=2}

replace (key, oldValue, newValue)

This method replaces the old value with a new one only if the old value is linked with a specific key.

colours.replace(Colour.BLUE, 2, 4);

System.out.println("The new enum now has: " + colours);

The result is:

The new enum now has: {RED=5, BLUE=4}

replaceAll()

It replaces the value of each element with the result of the function.

      colours.replaceAll((key, oldValue) -> oldValue + 7);

        System.out.println("EnumMap using replaceAll(): " + colours);

The result is:

EnumMap using replaceAll(): {RED=12, BLUE=11}

A few notes about enumMaps:

  • EnumMaps maintains the natural order of their keys.

  • We cannot have null keys.

  • Internally, enumMaps are represented as arrays.

CONCLUSION

In this article, you've learned about enumMaps and its methods.

I hope you've found this article helpful.

If you enjoy my writing, please consider subscribing to my newsletter.

I'm also on LinkedIn and Twitter.

Until next time! 🙋🏾‍♀️

ADDITIONAL RESOURCES

About the author

  • Software engineer turned technical writer.

No comments yet. Be the first to comment.

More from this blog