public interface Comparable<T> {
public int compareTo(To);
}
在排序的世界里,需要继承Comparable,而这是一个泛型接口,如果使用了有序的集合,就需要override此方法,比如Treemap,而String类中override了它,那就解读一下。
public int compareTo(String anotherString) {
//private final char value[];
int len1 =value.length;
intlen2 =anotherString.value.length;
//获取到最小的长度
int lim = Math.min(len1,len2);
char v1[] =value;
char v2[] =anotherString.value;
//对两个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;
}
对于Integer包装类,进行大小判定如下;
private final int value;
public int compareTo(Integer anotherInteger) {
return compare(this.value,anotherInteger.value);
}
public static int compare(int x, inty) {
return (x <y) ? -1 : ((x ==y) ? 0 : 1);
}
public Integer(intvalue) {
this.value =value;
}
只是使用了简单的三木运算进行比较。