Comparator比較器介面使用原理
阿新 • • 發佈:2019-02-14
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(負數)
下面是我用的,我是新建內部類