目录
前言
工作中会遇到LIst数据分类情况,或者统计之类的业务需求。使用普通的for循环可以解决,也可以用下Stream提供的方式来实现它。
一、存在问题
在使用Collectors.groupingBy分组时,如果分组的字段中有值为null,会抛出空指针异常。
二、解决方法
@Data
public class Student {
// 姓名
private String name;
// 年纪
private int age;
// 性别
private int sex;
// 班级
private String calss;
// 课外班
private String outsideClass;
}
List<Student> list = new ArrayList<>();
//list.stream().collect(Collectors.groupingBy(Student::getOutsideClass));
// 解决方案如下,在ofNullable后面加orElse就可以转换为String类型
list.stream().collect(Collectors.groupingBy(x -> Optional.ofNullable(x.getOutsideClass()).orElse("0")));
版权声明:本文为I_am_peanut原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。