我有这样的情况:
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)
所以我希望这个窗口中的日期一切都发生。这怎么可能?
谢谢大家!