目录
- 1 需求
- 2 代码
1 需求
查询出list ,代码里面需要根据一个字段进行分组,之后根据时间字段进行排序,找到分组之后,最新的一条数据的集合进行返回
2 代码
代码语言:javascript复制 /**
* 联合主键的情况下
* 分组 后获取创建时间 最新的一条
*/
List<user> collect = new ArrayList<>(infos.stream().collect(Collectors.toMap(
user::getStationId,
v -> v,
(v1, v2) -> {
Date dataTime = v1.getDataTime();
Date startDate1 = v2.getDataTime();
if (dataTime == null || startDate1 == null) {
return dataTime != null ? v1 : v2; //拿到不为空的 ,都为空取后一条
}
return dataTime.after(startDate1) || dataTime.equals(startDate1) ? v1 : v2;
}
)).values());