List中多个数据相同,保留最新日期数据

一、将list按从小到大排序

复制代码
sapVos.sort((t1, t2) -> t1.getBdatu().compareTo(t2.getBdatu()));

二、基于 Map 的键覆盖机制

适用场景 ‌:需高效去重且无需复杂排序逻辑。

实现步骤‌:

  1. 定义唯一键‌:将多个属性拼接为唯一标识。
  2. 覆盖旧值‌:遍历时用新数据覆盖旧数据,天然保留最新记录‌

Map<String, Data> map = new HashMap<>();
for (Data data : dataList) {
String key = data.getField1() + "|" + data.getField2(); // 多属性生成键 ‌:ml-citation{ref="6" data="citationList"}
map.put(key, data); // 后插入的数据覆盖旧值 ‌:ml-citation{ref="6" data="citationList"}
}
List<Data> uniqueList = new ArrayList<>(map.values());

相关推荐
tntxia17 小时前
linux curl命令详解_curl详解
linux
扛枪的书生19 小时前
Linux 网络管理器用法速查
linux
顺风尿一寸1 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode1 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫1 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao3 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐4 天前
Linux内存扩容指南
linux
zylyehuo5 天前
Linux 彻底且安全地删除文件
linux
用户805533698035 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297915 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux