如何通过 java 中的流获取地图列表值的大小

how to get size of list value of map by streams in java

我正在尝试按 长度 对字符串列表进行分组。 然后我想计算每个组的数量。 我做了第一个,我不能做下一个。 如何使用流修复我的代码?

Stream.of(Stream.of("Brad","Jack","Leonardo","Alexander","Juliet","William","Audrey")
                .collect(Collectors.groupingBy(String::length)))
                .forEach(System.out::print);

输出: {4=[布拉德、杰克]、6=[朱丽叶、奥黛丽]、7=[威廉]、8=[莱昂纳多]、9=[亚历山大]}

接下来我想得到的是每组的计数。 我该怎么做?

您可以链接 Collectors.counting():

Map<Integer,Long> counts = 
   Stream.of("Brad","Jack","Leonardo","Alexander","Juliet","William","Audrey")
         .collect(Collectors.groupingBy(String::length,
                                        Collectors.counting()));

这将产生以下结果Map

{4=2, 6=2, 7=1, 8=1, 9=1}