Comparable接口概述
基本类型数据和String类型数据,它们彼此的比较标准JAVA语言本身已经提供好了;
用户自定义类对象之间比较的标准JAVA语言本身是没有提供的;
如果一个容器中含有用户自定义类型的数据,并需要对容器类型进行排序,或查找某一元素时,必须制定容器中元素间比较的标准;
凡是需要对对象进行排序,查找的场合都可以考虑实现Comparable接口;
Comparable接口的实现
所有可以排序的类都实现的java.lang.Comparable接口,Comparable接口中只有一个方法
public int compareTo(Object obj);
该方法:
返回0时,this==obj
返回正数时, this>obj
返回负数时,this<obj
import java.util.*;
public class TestStudent {
public static void main(String[] args) {
List li=new ArrayList();
li.add(new Student(11,"小明"));
li.add(new Student(22,"小红"));
li.add(new Student(33,"小刚"));
Collections.sort(li);
System.out.println(li);
}
}
class Student implements Comparable{
private int age;
private String name;
public Student(int age,String name) {
this.age=age;
this.name=name;
}
public String toString() {
return "age:"+age+" "+"name:"+name;
}
public int compareTo(Object obj) {
Student st=(Student)obj;
if(this.age==st.age)
return 0;
else if(this.age>st.age)
return 1;
else
return -1;
}
}
运行结果:[age:11 name:小明, age:22 name:小红, age:33 name:小刚]