Java Stream: 去重并按时间排序 CourseDto 列表
使用 Java Stream 去除重复的 CourseDto 对象并按照时间字段进行排序,可以按照以下步骤进行:
-
使用
Collectors.toMap去重: 使用Collectors.toMap方法将CourseDto列表转换为一个 Map,其中键为courseId,值为CourseDto对象。由于 Map 的特性,会自动去除重复的courseId。 -
获取 Map 的值: 使用
values()方法获取 Map 中所有的值,即所有去重后的CourseDto对象。 -
使用
sorted方法排序: 使用sorted方法对去重后的CourseDto对象进行排序,并通过Comparator.comparing方法指定按照time字段进行排序。
以下代码展示了如何使用 Stream 去除重复的 CourseDto 对象并按照时间字段进行排序:
List<CourseDto> distinctCourseDtoListByAll = courseDtoListByAll.stream()
.collect(Collectors.toMap(CourseDto::getCourseId, Function.identity(), (p1, p2) -> p1))
.values()
.stream()
.sorted(Comparator.comparing(CourseDto::getTime))
.toList();
在这个例子中,我们使用 sorted 方法来对 CourseDto 对象进行排序,通过 Comparator.comparing 方法指定按照 time 字段排序。
原文地址: https://www.cveoy.top/t/topic/qqD0 著作权归作者所有。请勿转载和采集!