Java 重写 Collections.sort 排序方法

本文深入探讨了如何在Java中重写Collections.sort方法,实现自定义的排序逻辑。通过创建比较器Comparator并结合Lambda表达式,我们可以对复杂数据类型的列表进行灵活排序。文章详细解释了Comparator接口的使用,并提供了实例代码来展示自定义排序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.app.main.utils;

import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Created with IDEA
 * author:Dingsheng Huang
 * Date:2019/8/23
 * Time:下午3:50
 */
public class ReloadSort {

    public static class Entity {
        public Integer id;

        public String name;

        public Entity(Integer id, String name) {
            this.id = id;
            this.name = name;
        }
    }

    public static void main(String[] args) {

        Entity entity1 = new Entity(2, "b");
        Entity entity2 = new Entity(1, "a");
        Entity entity3 = new Entity(3, "c");

        List<Entity> entityList = new ArrayList<>();
        entityList.add(entity1);
        entityList.add(entity2);
        entityList.add(entity3);


        System.out.println("排序前:" + JSONObject.toJSONString(entityList));



        Collections.sort(entityList, new Comparator<Entity>() {
            @Override
            public int compare(Entity o1, Entity o2) {
                if (o1.id > o2.id) {
                    return 1;
                }
                if (o1.id < o2.id) {
                    return -1;
                }
                return 0;
            }
        });



        System.out.println("排序后" + JSONObject.toJSONString(entityList));


        // 附 lambda 写法
        Collections.sort(entityList, (o1, o2) -> {
            if (o1.id > o2.id) {
                return 1;
            }
            if (o1.id < o2.id) {
                return -1;
            }
            return 0;
        });
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值