Java Data Type How to - Get word Frequency with Lambda








Question

We would like to know how to get word Frequency with Lambda.

Answer

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/*w w w.  j a  va2 s .c  om*/
public class Main {
  public static void main(String[] args) {
    List<String> terms = Arrays.asList("this", "is","is","a");

    Map<String, Integer> result = terms
        .parallelStream()
        .flatMap(s -> Arrays.asList(s.split(" ")).stream())
        .collect(
            Collectors.toConcurrentMap(w -> w.toLowerCase(), w -> 1,
                Integer::sum));
    System.out.println(result);
  }
}