Java对象如何实现比较规则
生活随笔
收集整理的這篇文章主要介紹了
Java对象如何实现比较规则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、Comparable
- 二、Comparator
- 示例代碼
一、Comparable
public interface Comparable
此接口強行對實現它的每個類的對象進行整體排序。這種排序被稱為類的自然排序,類的 compareTo 方法被稱為它的自然比較方法。
實現此接口的對象列表(和數組)可以通過 Collections.sort(和 Arrays.sort)進行自動排序。實現此接口的對象可以用作有序映射中的鍵或有序集合中的元素,無需指定比較器。
二、Comparator
public interface Comparator
強行對某個對象 collection 進行整體排序 的比較函數。可以將 Comparator 傳遞給 sort 方法(如 Collections.sort 或 Arrays.sort),從而允許在排序順序上實現精確控制。還可以使用 Comparator 來控制某些數據結構(如有序 set或有序映射)的順序,或者為那些沒有自然順序的對象 collection 提供排序。
當且僅當對于一組元素 S 中的每個 e1 和 e2 而言,c.compare(e1, e2)==0 與 e1.equals(e2) 具有相等的布爾值時,Comparator c 強行對 S 進行的排序才叫做與 equals 一致 的排序。
示例代碼
package priv.lwx.javaprac.functionalinterface;import java.util.Arrays; import java.util.Comparator;/*** @ClassName Demo03FunctionalInterface* @Description TODO* @Author liaowenxiong* @Version 1.0* @date 2021/9/7 下午3:26*/ public class Demo03FunctionalInterface {public static void main(String[] args) {// 獲取比較器對象Comparator<String> c = getStringComparator();String[] strs = new String[]{"ddff", "de", "ert"};// 根據傳入的比較器對數組進行排序Arrays.sort(strs, c);// 把排序號的字符串數組打印輸出System.out.println(Arrays.toString(strs));}public static Comparator<String> getStringComparator() {// 使用匿名內部類來實現return new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {// 如果返回0表示相等// 后面減去前面的,表示降序;前面減去后面的表示升序return o2.length() - o1.length();}};} }總結
以上是生活随笔為你收集整理的Java对象如何实现比较规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非特殊用途化妆品备案查询网站官网(非特殊
- 下一篇: Java注解(Annotation)的学