Java Lambda 用法 发表于 2022-01-21 | 更新于 2022-04-26 | 分类于 Java | 阅读次数: | 字数: 1.3k | 时长 ≈ 1 分钟 标签 lambada 按分组获取分组中最新一条记录12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758/** * 历史任务实体类 */@Data@NoArgsConstructorpublic class HistoryTask implements Serializable { private static final long serialVersionUID = 7925632180050362451L; /** * 主键ID */ private String id; /** * 流程实例ID */ private String orderId; /** * 任务名称 */ private String taskName; /** * 任务显示名称 */ private String displayName; /** * 任务处理者ID */ private String operator; /** * 任务创建时间 */ private String createTime; /** * 任务完成时间 */ private String finishTime;}public Map<String, HistoryTask> getLatest(List<HistoryTask> historyTasks) { return historyTasks.stream().collect( // 根据任务处理者 Id 分组,获取各自分组中最新的一条记录 Collectors.toMap( HistoryTask::getOperator, Function.identity(), (h1, h2) -> { try { Date date1 = DateUtil.parseDate(h1.getFinishTime(), "yyyy-MM-dd HH:mm:ss"); Date date2 = DateUtil.parseDate(h2.getFinishTime(), "yyyy-MM-dd HH:mm:ss"); return date1.after(date2) ? h1 : h2; } catch (ParseException e) { // ignore } return h1; }) );}List<HistoryTask> historyTasks = ...historyTasks = new ArrayList<>(getLatest(historyTasks).values()); 本文作者: forever杨 本文链接: https://blog.yl-online.top/posts/cc1d3937.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。如果文章内容对你有用,请记录到你的笔记中。本博客站点随时会停止服务,请不要收藏、转载!