1. 程式人生 > >Comparator比較器介面使用原理

Comparator比較器介面使用原理

java.util.Comparator是比較器介面,如果我們需要控制某個類的次序並且該類本身不支援排序,那麼就可以建立一個類比較器來進行排序,實現方式很簡單隻需要實現java.util.Comparator介面。

java.util.Comparator介面只包括兩個函式,它的原始碼如下圖:


1) 若一個類要實現java.util.Comparator介面:它一定要實現int compare(T o1, T o2) 函式,而另一個可以不實現boolean equals(Object obj) 函式

2)int compare(T o1, T o2) 是比較o1和o2的大小

如果返回值為負數意味著o1比o2小,否則返回為零意味著o1等於o2,返回為正數意味著o1大於o2

對陣列或者List列表,或者Map(非hash)等排序是我們經常使用的一種處理資料的手段。Comparator介面是java中很方便的一個介面。

我們只需要重寫compare方法即可實現排序。

int compare(Object o1, Object o2) 返回一個基本型別的整型
如果要按照升序排序,
則o1 小於o2,返回-1(負數),相等返回0,01大於02返回1(正數)
如果要按照降序排序
則o1 小於o2,返回1(正數),相等返回0,01大於02返回-1(負數)

下面是我用的,我是新建內部類