Collectors.counting()
Сборщик-счётчик; обычно используется внутри `groupingBy()`.
Доступно с: Java 8
Синтаксис
static <T> Collector<T, ?, Long> counting()Возвращаемое значение
Collector<T, ?, Long>Сборщик, который считает элементы.
Примеры
Частота каждого слова:
void main() {
Map<String, Long> freq = Stream.of("yes", "no", "yes", "maybe", "yes", "no")
.collect(Collectors.groupingBy(w -> w, TreeMap::new, Collectors.counting()));
IO.println(freq);
}Результат:
{maybe=1, no=2, yes=3}Примечания
Результат имеет тип Long, поэтому словарь получается Map<String, Long>. Сам по себе вместо collect(counting()) проще вызвать count().
См. также
- Collectors.groupingBy() — Сборщик, который раскладывает элементы по группам с общим ключом.
- Stream.count() — Считает элементы потока.
- Collections.frequency() — Считает, сколько раз элемент встречается в коллекции.
Вопросы и ответы по теме
В учебнике
- Группировка — Группировка элементов потока в Java — Collectors.groupingBy, подсчёт и суммы по группам, mapping, TreeMap и partitioningBy.