在使用stream流的Collectors.groupingBy做分組統(tǒng)計(jì)時(shí)(示例代碼如下)
Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
如果統(tǒng)計(jì)的字段userName有null值則會(huì)報(bào)如下錯(cuò)誤文章來源:http://www.zghlxwxcb.cn/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)
解決方法為在統(tǒng)計(jì)之前增加一個(gè)filter方法將null值事先過濾掉。代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-758779.html
Map<String, Long> collect = list.stream().filter((item) -> StringUtils.isNotBlank(item.getUserName()))
.collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
到了這里,關(guān)于Java解決stream流Collectors.groupingBy 分組統(tǒng)計(jì)可能報(bào)空指針異常的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!