最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Arrays.sort()方法的比較器詳解

 更新時間:2023年12月13日 10:25:08   作者:得過且過的勇者y  
這篇文章主要介紹了Java中Arrays.sort()方法的比較器詳解,Arrays.sort(Object[] a)此方法看似沒有要求我們實現(xiàn)比較器,對于基本數(shù)據(jù)類型,String類型確實如此,因為這些類型中已經(jīng)自帶了compareTo()方法,需要的朋友可以參考下

Arrays.sort()方法的比較器

Arrays.sort()有以下重載(此處只展示兩種):

  • Arrays.sort(Object[] a);
  • Arrays.sort(T[] a, Comparator<? super T> c);

Arrays.sort(Object[] a)

此方法看似沒有要求我們實現(xiàn)比較器,對于基本數(shù)據(jù)類型,String類型確實如此,因為這些類型中已經(jīng)自帶了compareTo()方法

然而對于我們自定義的類型,則需要讓該類實現(xiàn)Comparable接口,重寫其中的compareTo()函數(shù)

否則雖然編譯時不會報錯,但是在運行時會出現(xiàn)ClassCastException的異常

Arrays.sort(T[] a, Comparator<? super T> c)

此方法的第二個參數(shù)c則明確地要求我們傳入一個實現(xiàn)了java.util.Comparator接口的實例,而Comparator接口中聲明了compare()的抽象方法,所以我們需要重寫compare()方法

可以有以下幾種方法

1、定義一個實現(xiàn)了Comparator接口的類,用該類生成一個實例作為參數(shù)

package com.demo
import java.util.Comparator;
public class LengthOfString implements Comparator<String>{
    @Override
    public int compare(String first, String second){
        return first.length() - second.length();
    }
    public static void main(String[] args){
        String[] ss = {"aa","AAA","a","aaaaaa"};
        Arrays.sort(ss,new LengthOfString());
        for(String s : ss){
            System.out.println(s);
        }
    }
}

2、由于Comparator接口只聲明了一個compare()方法,可以使用匿名內(nèi)部類的方式實現(xiàn)排序

String[] ss = {"aa","AAA","a","aaaaaa"};
Arrays.sort(ss, new Comparator<string>)String[] ss = {"aa","AAA","a","aaaaaa"};
Arrays.sort(ss, new Comparator<string>(){
    @Override
    public int compare(String first, String second){
        return first.length() - second.length();
    }
});
for(String s : ss){
    System.out.println(s);
}

3、使用Lambda表達式

Arrays.sort(ss, (String a,String b)->{
	return b.compareTo(a);//String類中定義了compareTO()方法,不需要自己實現(xiàn)
});

由于只有一行代碼,故可以省略寫成

Arrays.sort(ss, (String a,String b) -> b.compareTo(a));

到此這篇關于Java中Arrays.sort()方法的比較器詳解的文章就介紹到這了,更多相關Arrays.sort()方法的比較器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

海原县| 上蔡县| 姚安县| 色达县| 东安县| 蓬溪县| 辽阳县| 辰溪县| 双峰县| 腾冲县| 凌海市| 大邑县| 历史| 洪泽县| 郴州市| 寿阳县| 临清市| 东海县| 金华市| 喀什市| 河源市| 张北县| 郁南县| 闽清县| 光山县| 夏邑县| 灵石县| 大关县| 六安市| 化德县| 钟山县| 和硕县| 徐水县| 紫金县| 黔东| 留坝县| 濮阳市| 洛隆县| 韶山市| 建水县| 阿瓦提县|