java List集合中的对象根据属性降序/升序排序

public class TestAmount {
public static void main(String[] args) {
List<Amount> list = new ArrayList<Amount>();
//创建3个对象,金额分别是7000、9000、8000,6000并将他们依次放入List中  
        Amount a1 = new Amount();  
        a1.setAmount(7000d);  
        Amount a2 = new Amount();  
        a2.setAmount(9000d);
        Amount a3 = new Amount();  
        a3.setAmount(8000d);
        Amount a4 = new Amount();  
        a4.setAmount(6000d);
        list.add(a1);  
        list.add(a2);  
        list.add(a3);
        list.add(a4);
        Collections.sort(list, new Comparator<Amount>(){  
            /*  
             * int compare(Student o1, Student o2) 返回一个基本类型的整型,  
             * 返回负数表示:o1 小于o2,  
             * 返回0 表示:o1和o2相等,  
             * 返回正数表示:o1大于o2。  
             */  
            public int compare(Amount o1, Amount o2) {  
                //按照金额大小进行降序排列  
                if(o1.getAmount() < o2.getAmount()){  
                    return 1;  
                }  
                if(o1.getAmount() == o2.getAmount()){  
                    return 0;  
                }  
                return -1;  
            }  
        });
//        if (list != null && list.size() > 0) {
//        
//        for (Amount a : list) {
//        System.out.println(a.getAmount());
//        }
//        }
        
        //降序获取前3个集合
        if (list != null && list.size() > 0) {
        if (list.size() > 3) {
        list = list.subList(0, 3);
        for (Amount a : list) {
        System.out.println(a.getAmount());
        }
        } else {
        list = list.subList(0, list.size());
        for (Amount a : list) {
        System.out.println(a.getAmount());
        }
        }
        }
}
}
class Amount {
private String name;
private Double amount;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getAmount() {
return amount;
}
public void setAmount(Double amount) {
this.amount = amount;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值