java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

您所在的位置:网站首页 java过滤集合里的元素是什么 java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

2023-11-06 02:44| 来源: 网络整理| 查看: 265

java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。

新建实体类

package com.vvvtimes.vo; import java.math.BigDecimal; import java.util.Date; public class User { private Long id; //姓名 private String name; //年龄 private int age; //工号 private String jobNumber; //性别 private String sex; //入职日期 private Date entryDate; //家庭成员数量 private BigDecimal familyMemberQuantity; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getJobNumber() { return jobNumber; } public void setJobNumber(String jobNumber) { this.jobNumber = jobNumber; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getEntryDate() { return entryDate; } public void setEntryDate(Date entryDate) { this.entryDate = entryDate; } public BigDecimal getFamilyMemberQuantity() { return familyMemberQuantity; } public void setFamilyMemberQuantity(BigDecimal familyMemberQuantity) { this.familyMemberQuantity = familyMemberQuantity; } }

1.分组

通过groupingBy可以分组指定字段

//分组 Map groupBySex = userList.stream().collect(Collectors.groupingBy(User::getSex)); //遍历分组 for (Map.Entry entryUser : groupBySex.entrySet()) { String key = entryUser.getKey(); List entryUserList = entryUser.getValue(); }

上门的分组存在key空值安全问题,需要做过滤或封装处理

用Optional封装使用中会报No value present

//分组添加累计 Map groupMap = list.stream().collect(Collectors.groupingBy(x -> Optional.ofNullable(x.getReviewerGroupId()))); //遍历分组 for (Map.Entry entryGroup : groupMap.entrySet()) { Optional key = entryGroup.getKey(); Long groupId = key.get(); List entryGroupList = entryGroup.getValue(); }

正确使用方法如下,自定义groupingBy_WithNullKeys

/** Like Collectors.groupingBy, but accepts null keys. */ public static Collector groupingBy_WithNullKeys(Function


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3