package com.qianfan123.sail.cre.sync.dmp.plugin.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> list = new ArrayList<>();
list.add(new MyObject("code1", new Date(1631362800000L)));
list.add(new MyObject("code2", new Date(1631449200000L)));
list.add(new MyObject("code1", new Date(1631535600000L)));
list.add(new MyObject("code3", new Date(1631622000000L)));
Map<String, List<MyObject>> latestObjectsMap = list.stream()
.collect(Collectors.groupingBy(MyObject::getCode,
Collectors.collectingAndThen(
Collectors.maxBy(Comparator.comparing(MyObject::getUpdateDate)),
obj -> obj.map(Arrays::asList).orElse(new ArrayList<>()))));
List<MyObject> latestObjectsList = latestObjectsMap.values().stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println("Latest objects: " + latestObjectsList);
}
static class MyObject {
private String code;
private Date updateDate;
public MyObject(String code, Date updateDate) {
this.code = code;
this.updateDate = updateDate;
}
public String getCode() {
return code;
}
public Date getUpdateDate() {
return updateDate;
}
@Override
public String toString() {
return "MyObject{" +
"code='" + code + '\'' +
", updateDate=" + updateDate +
'}';
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~