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