Вы можете выполнить преобразование Long
в Integer
после подсчета, например
Map<String, Integer> map = Arrays.stream(text.split("\\s+"))
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new,
Collectors.collectingAndThen(Collectors.counting(), Long::intValue)));
, но вы также можете подсчитать, используя тип значения int
, во-первых:
Map<String, Integer> map = Arrays.stream(text.split("\\s+"))
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new,
Collectors.summingInt(word -> 1)));
Это сумма по одному для каждого слова.Вы можете использовать тот же подход с коллектором toMap
:
Map<String, Integer> map = Arrays.stream(text.split("\\s+"))
.collect(Collectors.toMap(Function.identity(), word -> 1, Integer::sum));