必须重写实体类的hashcode方法和equals方法
实现
根据ABC来分组 拿到开始时间小于当前时间的最大对象 并且给对象的D属性赋值
Map<String, List<Charging>> collect = chargings.stream()
.filter(charging -> System.currentTimeMillis() > charging.getStartTime().getTime())
.collect(
Collectors.groupingBy(charging -> charging.getA() + charging.getB() + charging.getC(),
Collectors.collectingAndThen(Collectors.toList(),
x -> {
x.stream().collect(Collectors.maxBy(Comparator.comparing(TCharging::getStartTime)))
.ifPresent(charging -> charging.setD("1"));
return x;
})));