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

Pou*_*ria 1 java java-stream

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

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

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

我想要得到的下一件事是每组的计数。我怎样才能做到这一点?

Era*_*ran 5

您可以链接Collectors.counting()

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

这将产生以下结果Map

{4=2, 6=2, 7=1, 8=1, 9=1}
Run Code Online (Sandbox Code Playgroud)