首先可以回答,java在集合中比較對象的接口主要有兩個
下面詳細介紹上面的兩個接口:
Comparable 接口
Comparable 接口主要是用來定義排序的,用法主要為,需要排序的對象要實現這個接口,
此接口有唯一的方法。
也就是說,一個對象如果想要排序,則需要實現此接口。實現此接口的對象可以在Collections.sort 或
者 Arrays.sort 中進行排序。
T 是泛型,表示可以與此對象進行比較的對象。
為什麼需要T泛型呢??
答: 主要是加上泛型限定,在編譯階段就可以發現傳入的參數是不是需要 比較的對象,
就不需要在運行時期進行類型檢
測試結果為:
如果Person 類是第三方的jar包裡的類,且沒有實現排序功能,而且又不能去該jar裡的類。
那我們如何實現排序呢? 這時 Comparator 接口就要上場了,下面介紹 Comparator 接口。
Comparator 接口
該接口定義如下:
下面我們再次實現 Person 按照年齡排序,但此時 Person 不是先任何接口:
代碼如下:實現Person 按照年齡倒序
結果如下: