1. 程式人生 > >對list 元素按某個屬性進行排序

對list 元素按某個屬性進行排序

public class Test {  
  
    public static void main(String[] args) {  
          
        List<Student> list = new ArrayList<Student>();  
          
        //建立3個學生物件,年齡分別是20、19、21,並將他們依次放入List中  
        Student s1 = new Student();  
        s1.setAge(20);  
        Student s2 = new Student();  
        s2.setAge(19);  
        Student s3 = new Student();  
        s3.setAge(21);  
        list.add(s1);  
        list.add(s2);  
        list.add(s3);  
          
        System.out.println("排序前:"+list);  
          
        Collections.sort(list, new Comparator<Student>(){  
  
            /*  
             * int compare(Student o1, Student o2) 返回一個基本型別的整型,  
             * 返回負數表示:o1 小於o2  //預設,  
             * 返回0 表示:o1和o2相等,  
             * 返回正數表示:o1大於o2。  
             */  
            public int compare(Student o1, Student o2) {  
              
                //按照學生的年齡進行升序排列  
                if(o1.getAge() > o2.getAge()){  
                    return 1;  
                }  
                if(o1.getAge() == o2.getAge()){  
                    return 0;  
                }  
                return -1;  
            }  
        });   
        System.out.println("排序後:"+list);  
    }  
}  
class Student{  
      
    private int age;  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  
    @Override  
    public String toString() {  
        return getAge()+"";  
    }  
}