开发需求:首先对积分(Integer类型)进行排序倒序,积分相等的再根据创建时间(Date类型)排序(正序)
第一次百度后写法为
List<TestInfo> TestInfoSortedList = TestInfoList .stream().sorted(Comparator.comparing(TestInfo::getIntegration).reversed().
thenComparing(TestInfo::getCreateTime)).collect(Collectors.toList());
后业务需求在第一次基础上调整为:首先对积分(Integer类型)进行排序倒序,积分相等的再根据创建时间(Date类型)排序(倒序)
代码调整为:
List<TestInfo> TestInfoSortedList = TestInfoList .stream().sorted(Comparator.comparing(TestInfo::getIntegration).reversed().
thenComparing(TestInfo::getCreateTime).reversed()).collect(Collectors.toList());
排序并没有实现该需求
后来做了多次调整,最终发现这样写能够实现目标效果
List<TestInfo> TestInfoSortedList = TestInfoList .stream().sorted(Comparator.comparingInt(TestInfo::getIntegration).reversed().
thenComparing(TestInfo::getCreateTime).reversed()).collect(Collectors.toList());