There is also another variation, using map.getOrDefault()
words.forEach(word -> {
map.put(word, map.getOrDefault(word, 0) + 1);
});
and then at some points you discover the Stream API var map = words.stream().collect(Collectors.groupingBy(w -> w, Collectors.counting()));