發現好多人仍是不知道根據集合所含對象的屬性排序怎麼樣實現,今天就用這個小功能做爲個人第一篇博客了java
假定要求以下:集合根據Student對象的age屬性排序。ide
首先建立Student類,這裏要實現Comparable接口,重寫compareTo方法測試
package base.attributeSort; public class Student implements Comparable<Student>{ private String name; private int age; public Student(){} public Student(String name,int age){ this.name=name; this.age=age; } @Override public int compareTo(Student o) { return this.age-o.age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
而後建立測試類AttributeSortthis
package base.attributeSort; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class AttributeSort { public static void main(String[] args) { Student stu1=new Student("zhangsan",3); Student stu2=new Student("lisi",4); Student stu3=new Student("wangwu",5); List<Student> list=new ArrayList<Student>(); list.add(stu2); list.add(stu3); list.add(stu1); Collections.sort(list); for(Student stu:list){ System.out.println(stu.getAge()+"==="+stu.getName()); } } }
這樣輸出結果即爲code
若是想倒敘排列的話兩種辦法對象
1)修改CompareTo,以下排序
public int compareTo(Student o) {
return o.age-this.age;
}接口
2)將AttributeSort中的Collections.sort(list);修改成Collections.sort(list,Collections.reverseOrder());get
若是是想根據其餘屬性排序,只須要修改compareTo方法的代碼便可了,利用Jdk自帶的方法仍是很簡單的。博客