Programming for fun and profit

Programming tutorials, problems, solutions. Always with code.

Java Util Map forEach(BiConsumer)


The method Map.forEach(BiConsumer) performs the given action for each entry of the map until all are processed or exception is thrown.

Method signature

The signature of the java.util.Map.forEach(BiConsumer) method is as follows:

default void forEach(BiConsumer<? super K,? super V> action)

The method is available since Java 8.


  • BiConsumer<? super K, ? super V> action – action to be performed for each entry

Return value

The method takes BiConsumer that returns nothing.


  • NullPointerException: when given action is null,
  • ConcurrentModificationException: when entry is found to be removed during iteration.

Example usage

In the following code we use java.util.Map.forEach(BiConsumer):


import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class MapExamples {

    public static void main(String[] args) {
        Map<Integer,String> nameForId = new HashMap<>();
        nameForId.put(1, "Kajko");
        nameForId.put(2, "Kokosz");
        System.out.println("Original map: " + nameForId);

        System.out.println("Pre Java 8 for-each:");
        for (Entry<Integer,String> entry : nameForId.entrySet()) {
            System.out.printf("key: %d, value: %s%n",
                    entry.getKey(), entry.getValue());

        System.out.println("Java 8 forEach:");
        nameForId.forEach((key,value) ->
                System.out.printf("key: %d, value: %s%n",
                        key, value));

The above code produces the following output:

Original map: {1=Kajko, 2=Kokosz}
Pre Java 8 for-each:
key: 1, value: Kajko
key: 2, value: Kokosz
Java 8 forEach:
key: 1, value: Kajko
key: 2, value: Kokosz


Share with the World!