日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java对象如何实现比较规则

發布時間:2023/12/3 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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对象如何实现比较规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。