1. 程式人生 > >Integer中方法compare和compareTo的區別

Integer中方法compare和compareTo的區別

從名字上我們就可以大概才出來他們的區別,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