0
点赞
收藏
分享

微信扫一扫

java8关于stream的部分用法

老王420 2022-01-10 阅读 39

java8关于stream的部分用法

list集合分组后按时间排序取最近的一条记录

集合按照id进行分组后,按照时间顺序取最近一条记录

List<Documnet> list = new ArrayList();
Map<String, Document> map = list.parallelStream().collect(Collectors.groupingBy(data -> data.getString("id"),
        Collectors.collectingAndThen(Collectors.reducing(
                (c1, c2) -> DateUtil.compare(c1.getDate("data_time"), c2.getDate("data_time")) > 0 ? c1 : c2), 
                Optional<Document>::get
        )));

list排序

List<User> list = new ArrayList();
// 正序
List<User> collect = list.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());
//倒序
List<User> collect = list.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
//常用数据类型排序
List<Date> dateList = new ArrayList();
List<Date> collect =dateList.stream().sorted().collect(Collectors.toList());
List<Date> collect =dateList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
举报

相关推荐

Java8——stream

Java8 Stream

Java8 Stream的使用

Java8 Stream 机制

java8 stream foreach

0 条评论