Java解决stream流Collectors.groupingBy 分组统计可能报空指针异常

在使用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