Java 快速導覽 - Number 子類別的 compareTo()

Number 的子類別 (subclass) 有實作如下的方法,可比較另一個 Number 子類別的物件 (object) ,看數值是否相同

方法描述
int compareTo(Byte anotherByte)
int compareTo(Double anotherDouble)
int compareTo(Float anotherFloat)
int compareTo(Integer anotherInteger)
int compareTo(Long anotherLong)
int compareTo(Short anotherShort)
比較參數與 Number 物件


舉例如下
class CompareToDemo {
    public static void main(String[] args) {
        Byte a1 = 25;
        Short a2 = 24;
        Integer a3 = 23;
        Long a4 = 22l;
        Float a5 = 21.0f;
        Double a6 = 20.0;
        
        Byte b1 = 25;
        Short b2 = 23;
        Integer b3 = 24;
        Long b4 = 22l;
        Float b5 = 20.0f;
        Double b6 = 20.0;
        
        System.out.println(a1.compareTo(b1));
        System.out.println(a2.compareTo(b2));
        System.out.println(a3.compareTo(b3));
        System.out.println(a4.compareTo(b4));
        System.out.println(a5.compareTo(b5));
        System.out.println(a6.compareTo(b6));
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:CompareToDemo.java
    功能:示範物件導向的基本觀念 
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



其中,第 17 行到第 22 行,其為呼叫 compareTo() 方法的地方,這裡,我們直接將回傳的整數印出
System.out.println(a1.compareTo(b1));
System.out.println(a2.compareTo(b2));
System.out.println(a3.compareTo(b3));
System.out.println(a4.compareTo(b4));
System.out.println(a5.compareTo(b5));
System.out.println(a6.compareTo(b6));


數值相同, compareTo() 會回傳整數 0 ,本身大於參數, compareTo() 會回傳大於 0 的值,反之本身小於參數, compareTo() 會回傳小於 0 的值。


內文依據花生狼網友的指正於 2011, 8, 26 進行修改,重寫之範例說明,請參考關於 compareTo() 的補充範例說明


中英文術語對照
子類別subclass
物件object






2 則留言:

花生狼 提到...

再麻煩您修改囉~~

Kaiching Chang 提到...

內文已修改,感謝指正 ^^