Java Thread How to - Use ConcurrentHashMap computeIfPresent method








Question

We would like to know how to use ConcurrentHashMap computeIfPresent method.

Answer

import java.util.LinkedHashMap;
import java.util.Map;
//from   w w w .ja v  a 2s . c o  m
public class Main {
  public static void main(String[] args) {
    Map<String, Integer> wordCounts = new LinkedHashMap<String, Integer>();

    String s = "Lorem ipsum dolor sit amet consetetur iam nonumy sadipscing "
        + "elitr, sed diam nonumy eirmod tempor invidunt ut erat sed "
        + "labore et dolore magna dolor sit amet aliquyam erat sed diam";

    wordCounts.put("sed", 0);
    wordCounts.put("erat", 0);

    for (String t : s.split(" ")) {
      wordCounts.computeIfPresent(t, (k, v) -> v + 1);
    }
    System.out.println(wordCounts);
  }
}

The code above generates the following result.