在使用stream流的Collectors.groupingBy做分组统计时(示例代码如下)
Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
如果统计的字段userName有null值则会报如下错误文章来源:https://www.toymoban.com/news/detail-758779.html
java.lang.NullPointerException: element cannot be mapped to a null key
at java.util.Objects.requireNonNull(Objects.java:228)
at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
解决方法为在统计之前增加一个filter方法将null值事先过滤掉。代码如下:文章来源地址https://www.toymoban.com/news/detail-758779.html
Map<String, Long> collect = list.stream().filter((item) -> StringUtils.isNotBlank(item.getUserName()))
.collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
到了这里,关于Java解决stream流Collectors.groupingBy 分组统计可能报空指针异常的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!