对自定义的对象进行排序,首先对象需要实现Comparable接口,然后重写compareTo方法。代码如下:
/*
* 学生实体
*/
class Student implements Comparable<Student>{
public Integer Age = 0;
public String Name = "";
public Integer getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public Student(int age,String name){
this.Age = age;
this.Name = name;
}
@Override
public int compareTo(Student s) {
//自定义比较方法,如果认为此实体本身大则返回1,否则返回-1
if(this.Age >= s.getAge()){
return -1;//反过来排序可设置为1 下面的return改为-1。一般这都是createTime倒叙
}
return 1;
}
}
List<Student> list = new ArrayList<Student>();
list.add(new Student(1,"zhangsan"));
list.add(new Student(6,"zhangsan"));
list.add(new Student(2,"zhangsan"));
list.add(new Student(9,"zhangsan"));
list.add(new Student(1,"zhangsan"));
list.sort(Comparator.naturalOrder());//比较
//Collections.sort(list);//正序比较
for(Student i : list){
System.out.println(i.getAge());
}