Collectors.groupingBy()进行分组时,分组值存在null值会报NPE(空指针)错误,使用时要注意

这篇具有很好参考价值的文章主要介绍了Collectors.groupingBy()进行分组时,分组值存在null值会报NPE(空指针)错误,使用时要注意。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题分析:

1、使用Collectors.groupingBy()进行分组时,分组值存在null值。

List<String> strList = new ArrayList<>(Arrays.asList("11", "12", "13", null, null));
Map<String, List<String>> map = strList.stream().collect(Collectors.groupingBy(x -> x));

解决办法:分组值为null时,默认值为空字符。文章来源地址https://www.toymoban.com/news/detail-633416.html

List<String> strList = new ArrayList<>(Arrays.asList("11", "12", "13", null, null));
Map<String, List<String>> map = strList.stream().collect(Collectors.groupingBy(x -> StrUtil.isEmpty(x) ? "" : x));

到了这里,关于Collectors.groupingBy()进行分组时,分组值存在null值会报NPE(空指针)错误,使用时要注意的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java8 Stream 之groupingBy 分组讲解

    本文主要讲解:Java 8 Stream之Collectors.groupingBy()分组示例 Collectors.groupingBy() 分组之常见用法 功能代码: /**      * 使用java8 stream groupingBy操作,按城市分组list      */     public void groupingByCity() {         MapString, ListEmployee map = employees.stream().collect(Collectors.groupingBy(Employee::getCi

    2024年02月13日
    浏览(35)
  • Java8的stream之groupingBy()分组排序

    groupingBy()是Stream API中最强大的收集器Collector之一,提供与SQL的GROUP BY子句类似的功能。 需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点 - 通常通过传递lambda表达式。 TreeMap默认按照key升序排序,collectPlan.descendingMap()可以进行降序排

    2024年02月12日
    浏览(31)
  • Java Stream流实现多字段分组groupingBy操作

    近期的项目里,遇到一个需求:对于含有多个元素的List,按照其中的某几个属性进行分组,比如Report::getPersonID、Report::getSchoolYear、Report::getDataType等字段。下面就让我们讨论一下如何比较优雅的按多字段进行分组groupingBy。 利用单个字段进行分组 如上面的Report类,如果对于其

    2024年02月07日
    浏览(50)
  • Collectors.toMap方法value值为null时的解决方案

    发现Collectors.toMap的一个坑,key可以为null,但value不能为null,否则抛空指针异常nullPointerException。这可真是反直觉。 使用Optional类处理value,优点是可以继续使用Collectors.toMap,缺点是为null的value会被改,而这可能违反业务上的期望。 使用 Stream#collect(java.util.function.SupplierR, java.

    2024年02月12日
    浏览(33)
  • Java Stream 处理分组后取每组最大&Stream流之list转map、分组取每组第一条&Java 8 Collectors:reducing 示例(List分组取最值)

    有一个需求功能:先按照某一字段分组,再按照另外字段获取最大的那个 先根据appId分组,然后根据versionSort取最大. JDK1.8推出的stream流能极大的简化对集合的操作,让代码更美观,老规矩,直接上代码。 取list中对象的某个属性作为唯一key,对象作为value形成一个map集合,能

    2024年02月16日
    浏览(49)
  • 《C和指针》笔记22: 指针初始化和NULL指针

    下面的代码显示了一个常见的错误: a指向哪里呢?我们声明了这个变量,但从未对它进行初始化,所以我们没有办法预测。12这个值将存储于什么地方。从这一点看,指针变量和其他变量并无区别。如果变量是静态的,它会被初始化为0;但如果变量是自动的,它根本不会被

    2024年02月09日
    浏览(27)
  • 0062__对象指针为NULL,为什么还是可以调用成员函数

    对象指针为NULL,为什么还是可以调用成员函数_空对象指针为什么能调用函数_一颗石头崽儿的博客-CSDN博客

    2024年02月10日
    浏览(31)
  • 全网多种方法解决数据库有数据,但mybatis查询出来的值为Null、为空或不存在的问题

    今天在查询组件详情时,却报出如下错误: 接下里,我便详细分析出现该错误的原因。 首先 debug (断点),如下图所示: debug 结果是 appCustomComponent: null ,于是,找到 mybatis-plus 的打印的 mysql 语句,如下所示:

    2024年02月15日
    浏览(37)
  • JAVA8新特性stream流收集为Map,value为null导致空指针的问题

    jdk8 新特性stream深受喜爱,平时使用比较多,其中有: MapString, String collect2 =  list.stream().collect(Collectors.toMap(Book::getName, Book::getIdNO,(pre, after) - pre));  现象如下: 问题:JDK8环境下,如果Book::getIdNo 为null的话会报空指针,即JDK8环境下的,该接口不支持value为null(key为null没这个问

    2024年02月06日
    浏览(48)
  • 空指针异常:java.lang.NullPointerException: Cannot invoke “Object.getClass()“ because “obj“ is null

    目录 问题: 问题指向:   解决: 运行正常: java.lang.NullPointerException: Cannot invoke \\\"Object.getClass()\\\" because \\\"obj\\\" is null     at java.base/java.lang.reflect.Method.invoke(Method.java:570)     at org.myspringframework.core.ClassPathXmlApplicationContext.lambda$new$0(ClassPathXmlApplicationContext.java:172)     at java.bas

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包