Comparable 接口有一个 compareTo 方法,用来比较对象的“大、小”。
写法例子:
// 老师类
class Teacher implements Comparable { // Comparable 接口加上了泛型
private String name;
private int ranking;
public void setRanking( int ranking ) {
this.ranking = ranking;
}
// 根据 ranking 进行比较
public int compareTo(Teacher t1){
return ranking - t1.ranking;
}
//
public String toString() {
return "Teacher [name=" + name + ", ranking=" + ranking + "]";
}
}
调用 compareTo 进行比较:
Teacher t1 = new Teacher();
Teacher t2 = new Teacher();
t1.setRanking( 13 );
t2.setRanking( 41 );
int result = t1.compareTo(t2);
System.out.println(result);
-----------------------------------------
对 list 排序,使用 Collections.sort(list); 方法。
-----------------------------------------
另外 Integer,String,(java.util.)Date 都已经实现了 Comparable 接口,可以直接比较对象
Integer a1 = 31;
Integer a2 = 51;
int result1 = a1.compareTo( a2 );
System.out.println( result1 );
String s1 = "auspicious";
String s2 = "autumn";
int result2 = s1.compareTo( s2 );
System.out.println( result2 );
Date d1 = new Date();
Thread.sleep( 1000 );
Date d2 = new Date();
int result3 = d1.compareTo( d2 );
System.out.println( result3 );