Integer中方法compare和compareTo的區別
阿新 • • 發佈:2018-12-10
從名字上我們就可以大概才出來他們的區別,compareTo的引數是一個整數,是物件的方法.相對之下compare的引數應該就是兩個,是類的方法.
再來看看原始碼
//compareTo
public int compareTo(Integer anotherInteger) {
return compare(this.value, anotherInteger.value);
}
//compare
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
這就很清楚了,compare是靜態的,可以通過類名直接呼叫.Integer.compare(a,b) compareTo是非靜態的,只能通過物件名.compareTo()來呼叫
compareTo內部其實也是直接呼叫的compare方法. 物件大於目標引數,返回1 物件小於目標引數,返回-1 物件等於目標引數,返回0