How to count each element/word from the String ArrayList in Java8?

This program counts the occurrences of each element in a list of Strings using Stream functions.

Code Example:

public class TestNotes {

    public static void main(String[] args) {

        List<String> names = Arrays.asList("AA", "BB", "AA", "CC");

        Map<String, Long> namesCount = names.stream()
                .collect(Collectors.groupingBy(
                        Function.identity(),
                        Collectors.counting()));

        System.out.println(namesCount);
    }
}

Output:

{CC=1, BB=1, AA=2}