Java解决stream流Collectors.groupingBy 分组统计可能报空指针异常
•
Jave
在使用stream流的Collectors.groupingBy做分组统计时(示例代码如下)
Map collect = list.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
如果统计的字段userName有null值则会报如下错误
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值事先过滤掉。代码如下:
Map collect = list.stream().filter((item) -> StringUtils.isNotBlank(item.getUserName()))
.collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/1da67c89e4.html
