发现好多人仍是不知道根据集合所含对象的属性排序怎么样实现,今天就用这个小功能做为个人第一篇博客了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自带的方法仍是很简单的。博客