小编Ed-*_*sis的帖子

按日期范围分组

我有这样的情况:

List<ObjectA> collapsed = list.stream().collect(Collectors.collectingAndThen(
        Collectors.groupingBy(
                ObjectA::getDate,
                Collectors.maxBy(Comparator
                        .comparing(ObjectA::getPriority1)
                        .thenComparing(ObjectA::getPriority2)
                        .thenComparing(ObjectA::getDate)
                        .thenComparing(ObjectA::getId))),
        map -> map.values().stream()
                .filter(Optional::isPresent)
                .map(Optional::get)
                .collect(Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)

它对于相同的日期非常有效。我只需要对特定日期窗口的项目进行分组:

Integer daysWindow = 90;
Run Code Online (Sandbox Code Playgroud)

所以我希望这个窗口中的日期一切都发生。这怎么可能?

谢谢大家!

java grouping java-stream

3
推荐指数
1
解决办法
940
查看次数

标签 统计

grouping ×1

java ×1

java-stream ×1