Java Collection How to - Merge Map value








Question

We would like to know how to merge Map value.

Answer

import java.util.HashMap;
import java.util.Map;
/*from w w  w . java2 s . co m*/
public class Main {

    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();

        for (int i = 0; i < 10; i++) {
            map.putIfAbsent(i, "val" + i);
        }

        map.forEach((id, val) -> System.out.println(val));

        map.merge(9, "val9", (value, newValue) -> value.concat(newValue));
        System.out.println(map.get(9));             // val9

        map.merge(9, "concat", (value, newValue) -> value.concat(newValue));
        System.out.println(map.get(9));             // val9concat
    }

}

The code above generates the following result.