stream分组后value排序后取第一个

87 阅读1分钟

 stream流实现对数据按照某个属性分组后得到一个value是list的map对象,对每个value按照某个属性进行排序后取第一个元素,组成一个新的list

下边是一个例子

query.stream()
                    .collect(Collectors.groupingBy(FreightPriceManagerVo::getGoodsPriceId))
                    .values().stream().flatMap(list->list.stream().sorted(Comparator.comparing(FreightPriceManagerVo::getBeginTime).reversed()).findFirst().stream())
                    .collect(Collectors.toList());