Java 集合多字段排序

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TimeBetweenRecent {
        private Long startTime;
        private Long endTime;

        public TimeBetweenRecent(Long startTime, Long endTime) {
            this.startTime = startTime;
            this.endTime = endTime;
        }
    }

    @Test
    public void test() {
        List<TimeBetweenRecent> recents = new ArrayList<>();
        recents.add(new TimeBetweenRecent(1L, 5L));
        recents.add(new TimeBetweenRecent(1L, 4L));
        recents.add(new TimeBetweenRecent(2L, 6L));
        recents.add(new TimeBetweenRecent(2L, 7L));
        //startTime 升序
        Comparator c1 = Comparator.comparingLong(
                TimeBetweenRecent::getStartTime);
        //endTime 降序
        Comparator c2 = Comparator.comparingLong(
                TimeBetweenRecent::getEndTime).reversed();

        recents.sort(c1.thenComparing(c2));
        System.out.println(recents);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容