1. 程式人生 > >java List集合中的物件根據屬性降序/升序排序

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;
}
}