Compare接口
1、Comparable接口
此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。
2、接口实现方法
public interface Comparable<T> {
public int compareTo(T t);
}
其中String实现Comparable接口,重写compareTo方法
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}//先比较两个字符串长度,再比较其ascii码
String s1="123";
String s2="12345";
String t1="120";
String t2="125";
System.out.println(s1.compareTo(s2)); //-2
System.out.println(t1.compareTo(t2)); //-5
3、实例
Arrays.sort();Collections.sort();在实现对类的自动排序中,类必须实现此接口,并重写其方法
public int compareTo(Student other){
if (id<other.id) return - 1;
if (id>other.id) return 1;
return 0 ;
}