国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java數(shù)組排序,升序和降序

這篇具有很好參考價(jià)值的文章主要介紹了java數(shù)組排序,升序和降序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

對(duì)于數(shù)組的排序一直很疑惑,尤其是如何對(duì)數(shù)組進(jìn)行降序排列,例如要對(duì)int[]類型的數(shù)組降序排列,這里來進(jìn)行說明

基本數(shù)據(jù)類型排序

升序

int[] nums = {4, 3, 5, 2, 6, 1,7};

如果我們要對(duì)上面代碼進(jìn)行升序排列,我們只需要調(diào)用Arrays.sort的方法即可

java數(shù)組排序,升序和降序
將數(shù)組傳入即可,支持基本數(shù)據(jù)類型,這個(gè)sort就會(huì)對(duì)數(shù)組進(jìn)行排序

Arrays.sort(nums);

排序后輸出結(jié)果如下

[1, 2, 3, 4, 5, 6, 7]

降序排列

對(duì)于基本數(shù)據(jù)類型,并沒有現(xiàn)成的api,但是我們可以將排序后的數(shù)組進(jìn)行翻轉(zhuǎn)

        int[] nums = {4, 3, 5, 2, 6, 1,7};
        Arrays.sort(nums);
        // 翻轉(zhuǎn)數(shù)組
        for (int i = 0; i < nums.length / 2; i++) {
            int t = nums[i];
            nums[i] = nums[nums.length - i - 1];
            nums[nums.length - i - 1] = t;
        }
        System.out.println(Arrays.toString(nums));

輸出結(jié)果如下

[7, 6, 5, 4, 3, 2, 1]

基本數(shù)據(jù)類型包裝類

升序

用基本數(shù)據(jù)類型的包裝類來進(jìn)行升序排列調(diào)用Aarrays.sort即可

		Integer[] nums = {4, 3, 5, 2, 6, 1,7};
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));

降序

如果要降序排列,在sort后面?zhèn)魅胍粋€(gè)Comparator接口即可,下面我使用的是lambda表達(dá)式,如果是o1-o2表示升序,o2-o1表示降序,具體的在下面的對(duì)象排序里面講

		Integer[] nums = {4, 3, 5, 2, 6, 1, 7};
        Arrays.sort(nums, (o1, o2) -> o2 - o1);
        System.out.println(Arrays.toString(nums));

輸出內(nèi)容如下

[7, 6, 5, 4, 3, 2, 1]

對(duì)象排序

升序

下面是我自定義的一個(gè)Cat類

class Cat {
    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

初始的Cat類數(shù)組如下

        Cat[] cats = {
                new Cat("大黃", 2),
                new Cat("小黑",1),
                new Cat("旺財(cái)", 3),
                new Cat("大黑", 4)
        };

該數(shù)組沒排序前輸出如下

Cat{name='大黃', age=2}
Cat{name='小黑', age=1}
Cat{name='旺財(cái)', age=3}
Cat{name='大黑', age=4}

下面我想對(duì)年齡進(jìn)行排序,我們使用的也是Arrays.sort

java數(shù)組排序,升序和降序
我們需要傳入一個(gè)Comparator,new一個(gè),實(shí)現(xiàn)里面的compare方法即可,sort會(huì)根據(jù)compare返回的值來進(jìn)行排序,如果返回負(fù)數(shù)就會(huì)將前面?zhèn)€值放到前面

		Arrays.sort(cats, new Comparator<Cat>() {
            @Override
            public int compare(Cat cat1, Cat cat2) {
                return cat1.age - cat2.age;
            }
        });

或者使用lambda表達(dá)式

Arrays.sort(cats, (cat1, cat2) -> cat1.age - cat2.age);

也可以寫成下面這種寫法

Arrays.sort(cats, Comparator.comparingInt(cat -> cat.age));

最后的一種寫法就表示使用Cat的age屬性來進(jìn)行比較,三種寫法輸出結(jié)果都是升序排列的,如下

Cat{name='小黑', age=1}
Cat{name='大黃', age=2}
Cat{name='旺財(cái)', age=3}
Cat{name='大黑', age=4}

降序

會(huì)升序排列了,降序就是將compare的結(jié)果變成相反就行了

        Arrays.sort(cats, new Comparator<Cat>() {
            @Override
            public int compare(Cat cat1, Cat cat2) {
                return cat2.age - cat1.age;
            }
        });

lambda寫法如下

Arrays.sort(cats, (cat1, cat2) -> cat2.age - cat1.age);

我們也可以這樣寫

Arrays.sort(cats, Comparator.comparingInt(cat -> -cat.age));

輸出結(jié)果都是降序排列的文章來源地址http://www.zghlxwxcb.cn/news/detail-412627.html

Cat{name='大黑', age=4}
Cat{name='旺財(cái)', age=3}
Cat{name='大黃', age=2}
Cat{name='小黑', age=1}

到了這里,關(guān)于java數(shù)組排序,升序和降序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java lamda對(duì)List<JSONObject>里多個(gè)動(dòng)態(tài)屬性字段進(jìn)行動(dòng)態(tài)的降序或者升序

    ? ? ? ? 最近做到一個(gè)需求,需要把業(yè)務(wù)側(cè)返回的數(shù)據(jù)(格式為L(zhǎng)istJSONObject),然后根據(jù)前端傳來的排序字段、以及升降序?qū)傩詠砼判虿⒎祷亟o前端。要對(duì)ListJSONObject中的多個(gè)屬性字段進(jìn)行動(dòng)態(tài)的升序或降序排序,我們可以根據(jù)需要使用Comparator.comparing()方法和Comparator.reverseOrd

    2024年02月15日
    瀏覽(18)
  • SQL:查詢結(jié)果升序、降序排列

    SQL:查詢結(jié)果升序、降序排列

    SQL 查詢時(shí),查詢結(jié)果按照某一列參數(shù)升序或者降序排列后再輸出是常見的用法,本文主要介紹了利用 order by 對(duì)輸出結(jié)果進(jìn)行排序的用法 本文部分內(nèi)容參考自: SQL37 查找后多列排序 SQL38 查找后降序排列 一句話說明:order by 可以按照降序或者升序?qū)z索結(jié)果進(jìn)行排序 強(qiáng)調(diào):

    2024年02月05日
    瀏覽(26)
  • mysql中desc的兩種用法---1、查詢表結(jié)構(gòu)和降序

    mysql中desc的兩種用法---1、查詢表結(jié)構(gòu)和降序

    1、查詢表結(jié)構(gòu) 語法: desc table_name; PS:此處desc是describe的縮寫,用法: desc 表名/查詢語句 2、降序 語法: select * from 表 order by 字段 desc select ename,sal from emp order by sal desc; 手動(dòng)指定按照薪水由大到小排序(降序desc) select ename,sal from emp order by sal asc; 手動(dòng)指定按照薪水

    2024年02月13日
    瀏覽(37)
  • 對(duì)HashMap的value做升序、降序

    } 因?yàn)榻Y(jié)果要求是有序的,所以返回的類型必須是LinkedHashMap

    2024年02月11日
    瀏覽(16)
  • 【在一個(gè)升序數(shù)組中插入一個(gè)數(shù)仍升序輸出】

    【在一個(gè)升序數(shù)組中插入一個(gè)數(shù)仍升序輸出】

    有一個(gè)升序數(shù)組nums,給一個(gè)數(shù)字data,將data插入數(shù)組nums中仍舊保證nums升序,返回?cái)?shù)組中有效元素個(gè)數(shù)。 比如:nums[100] = {1, 2, 3, 5, 6, 7, 8, 9} size = 8 data = 4 插入之后,nums為{1, 2, 3, 4, 5, 6, 7, 8, 9} 返回 size = 9 方法一:插入排序 1.1方法解析 1.遍歷數(shù)組nums,找到第一個(gè)大于等于dat

    2024年02月13日
    瀏覽(17)
  • 7 | 計(jì)算每個(gè)鍵對(duì)應(yīng)的平均值,并按降序排序

    假設(shè)您有一個(gè)包含銷售訂單的RDD,其中每個(gè)元素是一個(gè)鍵值對(duì),其中鍵表示產(chǎn)品名稱,值表示銷售數(shù)量。您希望按產(chǎn)品名稱對(duì)銷售訂單進(jìn)行分組,并計(jì)算每個(gè)產(chǎn)品的總銷售數(shù)量。最后,希望獲得每個(gè)產(chǎn)品的總銷售數(shù)量以及按產(chǎn)品名稱分組的詳細(xì)銷售訂單列表。 計(jì)算每個(gè)鍵對(duì)應(yīng)

    2024年02月10日
    瀏覽(22)
  • Java中對(duì)于List<Map>對(duì)象中的相關(guān)操作(排序、最大值、最小值、和、平均數(shù))

    一、對(duì)List Map 中指定鍵對(duì)應(yīng)的值進(jìn)行排序 注意: (1)、升序和降序的主要區(qū)別就是方法中調(diào)用compareTo方法的對(duì)象不同,其余沒有變化 (2)、Map集合的getOrDefault方法是為了防止出現(xiàn)空指針異常(如果你的數(shù)據(jù)都不為空則可以直接用get方法進(jìn)行取值) 二、獲取List Map 中的指定鍵對(duì)應(yīng)的

    2024年02月16日
    瀏覽(23)
  • 排序前言&冒泡排序

    排序前言&冒泡排序

    目錄 排序應(yīng)用 常見的排序算法?? BubbleSort冒泡排序 整體思路 圖解分析?? 代碼實(shí)現(xiàn) 每趟 寫法1 寫法2 代碼NO1 代碼NO2優(yōu)化 時(shí)間復(fù)雜度 排序:所謂排序,就是使一串記錄,按照其中的某個(gè)或某些的大小,遞增或遞減的排列起來的操作。 穩(wěn)定性:假定在待排序的記錄序

    2024年02月19日
    瀏覽(20)
  • 練習(xí)-用指針方法將n個(gè)整數(shù)按升序排列(選擇排序)

    #includestdio.h//頭文件? int main()//主函數(shù)? { ? void sort(int **point,int number); //sort排序函數(shù)聲明? ? int i,number,data[20],**point,*pstr[20]; //定義變量? ? scanf(\\\"%d\\\",number);//鍵盤輸入? ? for(i=0;inumber;i++) { ? ? pstr[i]=data[i]; //將第i個(gè)整數(shù)的地址賦予指針數(shù)組pstr的第i個(gè)元素? ? } ? for(i=0;inumber

    2024年02月04日
    瀏覽(41)
  • java數(shù)組.day16(冒泡排序,稀疏數(shù)組)

    java數(shù)組.day16(冒泡排序,稀疏數(shù)組)

    冒泡排序無疑是最為出名的排序算法之一,總共有八大排序! 冒泡的代碼還是相當(dāng)簡(jiǎn)單的,兩層循環(huán),外層冒泡輪數(shù),里層依次比較,江湖中人人盡皆知。 我們看到嵌套循環(huán),應(yīng)該立馬就可以得出這個(gè)算法的時(shí)間復(fù)雜度為O(n2)。 代碼示例: 當(dāng)一個(gè)數(shù)組中大部分元素為0,或者

    2024年04月11日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包