在实际开发当中,我们经常会对数据进行排序。但是对于一些对象来说比较不好排序,jdk给我们提供了排序的接口:**Comparable**接口。
Comparable接口:
T 可以与此对象进行比较的那些对象的类型。如果你要对一种对象类型进行排序,可以让其实现Comparable接口,然后实现compareTo方法,该方法返回-1表示当前对象小于新插入的对象,返回0表示相等,返回1表示大于新插入的对象。
举个例子:
一个学生对象根据年纪排序。
public class Student implements Comparable<Student>{
private String studentName;
private int studentAge;
public Student(String studentName, int studentAge) {
super();
this.studentName = studentName;
this.studentAge = studentAge;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
@Override
public int compareTo(Student student) {
if(this.studentAge>student.getStudentAge()) {
return 1;
}
return -1;
}
}
测试类:
public static void main(String[] args) {
Student s1=new Student("张三",16);
Student s2=new Student("李四",19);
Student s3=new Student("admin",15);
List<Student> list=new ArrayList<Student>();
list.add(s1);
list.add(s2);
list.add(s3);
Collections.sort(list);
for(Student temp:list) {
System.out.println(temp.getStudentName());
}
}
输出结果:
admin
张三
李四
综合上面结果可知:
如果已经存在的对象大于新存进来的对象,如果comparTo方法返回1则表示将新存入的对象放入后面。