回覆列表
  • 1 # 使用者9988944135669

    Comparable介面中的 compareTo方法就是用於提供兩個物件比較策略的方法。根據JDK文件,方法產生一個整數作為返回值,當這一整數小於0時,說明呼叫方小於被呼叫方,即在自然排序會排在前面;反之,當返回值大於0時,說明呼叫方大於被呼叫方。當返回值等於0時,可以認為二者相等(只是在比較時相等,不能嚴格保證二者是equals的關係)。

    這裡首先要說題主問題裡提到的compareTo的場景是不成立的,因為compareTo方法的呼叫法是一個引用型別的物件,除包裝類外,引用型別物件不能用減號連線,而包裝類都是final型別的,無法被繼承。一般新建一個類實現Comparable介面時,都是透過比較物件的某一個或多個成員變數來對物件的大小進行比較。

    那麼假設問題成立的話,x=1, y=2返回-1,表示的是在自然排序中1在2前面,x=2,y=1,返回1,表示的是自然排序中2在1的後面,二者是一致的。

    實際上,如果是要自定義排序的規則,一般是在排序中使用Comparator介面,Comparator介面與Comparable類似,介面中包含一個compare方法

    即要比較的兩個物件都作為引數傳入方法中,此時兩個引數可以是基本型別的包裝類,可以按問題中的方式進行呼叫。

  • 中秋節和大豐收的關聯?
  • 桌布上的油漬怎麼去除?