对象List集合,按对象的某一属性排序

本文介绍如何使用Java的Collections.sort方法对List集合中的自定义对象进行排序,并通过具体示例展示了正序与倒序的实现方式。

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

对象List集合排序

核心代码块


   Collections.sort(eList , new Comparator<E>() {
       public int compare(E arg0, E arg1) {
           int hits0 = arg0.getNum();
           int hits1 = arg1.getNum();
           if (hits1 > hits0) {
               return -1;
           } else if (hits1 == hits0) {
               return 0;
           } else {
               return 1;
           }
       }
   });

其中eList是我们需要进行排序的List集合,即List<E> eList = new ArrayList<E>();
在E这个对象中,有num这个属性,即e.getNum()有效 注:num只是举例,并非E这个对象中必须要有特定的num属性,
可为任意属性 如 type , grade ,name ...都可

如果hits1 > hits0 时,return -1;即为正序排序
如果hits1 > hits0 时,return 1; 即为倒序排序


public class Equip {

    private String name;

    private String type;

    private int grade;

    private boolean exist;
    //省略get set 方法
}
List<Equip> equipList = new ArrayList<>();
// equipList中添加Equip对象
// 按等级顺序排序
Collections.sort(equipList, new Comparator<Equip>() {
    public int compare(Equip arg0, Equip arg1) {
        int hits0 = arg0.getGrade();
        int hits1 = arg1.getGrade();
        if (hits1 > hits0) {
            return -1;
        } else if (hits1 == hits0) {
            return 0;
        } else {
            return 1;
        }
    }
});
for (Equip equip : equipList) {
    System.out.println(
            equip.getGrade() + "  " + EnumHelper.translate(EquipKindEnum.class, equip.getType()).getText()
                    + "  " + equip.getName());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值