欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中List集合按指定條件排序

 更新時間:2023年07月04日 09:09:11   作者:長安明月  
這篇文章主要介紹了Java中List集合按指定條件排序,List是一種有序集合,可以隨時添加和刪除其中元素,本篇文章針對List集合按照條件排序的幾種方式做了實例演示,需要的朋友可以參考下

一、排序場景

List 保存著一組亂序排列的字符串,Map 中保存著該組字符串各自的優(yōu)先級。優(yōu)先級數(shù)字從低到高表示優(yōu)先級依次遞減。要求將 List 中的字符串,按照優(yōu)先級從高到低排序。

二、指定條件排序

實現(xiàn) List 排序有多種方法,本文總結(jié)以下幾種。

2.1 調(diào)用 list sort 方法,實現(xiàn)比較器接口進行排序

package com.example.demo.help;
import java.util.*;
public class ListSortTest {
    public static void main(String[] args) {
        List<String> rules = new ArrayList<>();
        rules.add("30003");
        rules.add("20002");
        rules.add("10001");
        rules.add("40004");
        rules.add("60006");
        rules.add("50005");
        Map<String, Integer> ruleUpper = new HashMap<>();
        ruleUpper.put("10001", 1);
        ruleUpper.put("20002", 2);
        ruleUpper.put("30003", 3);
        ruleUpper.put("40004", 4);
        rules.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return ruleUpper.getOrDefault(o1, Integer.MAX_VALUE) - ruleUpper.getOrDefault(o2, Integer.MAX_VALUE);
            }
        });
        System.out.println(rules);
        // [10001, 20002, 30003, 40004, 60006, 50005]
    }
}

2.2 調(diào)用 list sort 方法,通過 lambda 表達式實現(xiàn)排序

package com.example.demo.help;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListSortTest {
    public static void main(String[] args) {
        List<String> rules = new ArrayList<>();
        rules.add("30003");
        rules.add("20002");
        rules.add("10001");
        rules.add("40004");
        rules.add("60006");
        rules.add("50005");
        Map<String, Integer> ruleUpper = new HashMap<>();
        ruleUpper.put("10001", 1);
        ruleUpper.put("20002", 2);
        ruleUpper.put("30003", 3);
        ruleUpper.put("40004", 4);
        rules.sort((o1, o2) -> (ruleUpper.getOrDefault(o1, Integer.MAX_VALUE) - ruleUpper.getOrDefault(o2, Integer.MAX_VALUE)));
        System.out.println(rules);
        // [10001, 20002, 30003, 40004, 60006, 50005]
    }
}

2.3 通過 Collections sort 方法,實現(xiàn)比較器接口進行排序

package com.example.demo.help;
import java.util.*;
public class ListSortTest {
    public static void main(String[] args) {
        List<String> rules = new ArrayList<>();
        rules.add("30003");
        rules.add("20002");
        rules.add("10001");
        rules.add("40004");
        rules.add("60006");
        rules.add("50005");
        Map<String, Integer> ruleUpper = new HashMap<>();
        ruleUpper.put("10001", 1);
        ruleUpper.put("20002", 2);
        ruleUpper.put("30003", 3);
        ruleUpper.put("40004", 4);
        Collections.sort(rules, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return ruleUpper.getOrDefault(o1, Integer.MAX_VALUE) - ruleUpper.getOrDefault(o2, Integer.MAX_VALUE);
            }
        });
        System.out.println(rules);
        // [10001, 20002, 30003, 40004, 60006, 50005]
    }
}

到此這篇關(guān)于Java中List集合按指定條件排序的文章就介紹到這了,更多相關(guān)List指定條件排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的CyclicBarrier循環(huán)柵欄詳解

    Java中的CyclicBarrier循環(huán)柵欄詳解

    這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄詳解,CyclicBarrier循環(huán)柵欄是用來進行線程協(xié)作,等待線程滿足某個計數(shù),構(gòu)造時設(shè)置計數(shù)個數(shù),每個線程執(zhí)行到某個需要“同步”的時刻調(diào)用 await()方法進行等待,當?shù)却木€程數(shù)滿足計數(shù)個數(shù)時,繼續(xù)執(zhí)行,需要的朋友可以參考下
    2023-12-12
  • Spring Boot 表單驗證篇

    Spring Boot 表單驗證篇

    在表單提交的時候,我們需要進行驗證。下面通過本篇文章給大家介紹Spring Boot 表單驗證篇,需要的朋友可以參考下
    2017-08-08
  • Spring Boot右鍵maven build成功但是直接運行main方法出錯的解決方案

    Spring Boot右鍵maven build成功但是直接運行main方法出錯的解決方案

    這篇文章主要介紹了Spring Boot-右鍵maven build成功但是直接運行main方法出錯的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Java并發(fā)編程中的volatile關(guān)鍵字詳解

    Java并發(fā)編程中的volatile關(guān)鍵字詳解

    這篇文章主要介紹了Java并發(fā)編程中的volatile關(guān)鍵字詳解,volatile?用于保證我們某個變量的可見性,使其一直存放在主存中,不被移動到某個線程的私有工作內(nèi)存中,需要的朋友可以參考下
    2023-08-08
  • java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件

    java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件

    這篇文章主要介紹了java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件,從個人項目中提取出來的,小伙伴們可以直接拿走使用。
    2015-02-02
  • Java實現(xiàn)拓撲排序的示例代碼

    Java實現(xiàn)拓撲排序的示例代碼

    這篇文章我們要講的是拓撲排序,這是一個針對有向無環(huán)圖的算法,主要是為了解決前驅(qū)后繼的關(guān)系,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-05-05
  • java大話之創(chuàng)建型設(shè)計模式教程示例

    java大話之創(chuàng)建型設(shè)計模式教程示例

    這篇文章主要為大家介紹了java大話之創(chuàng)建型設(shè)計模式教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • java開發(fā)WMS倉庫商品預警需求示例解析

    java開發(fā)WMS倉庫商品預警需求示例解析

    這篇文章主要為大家介紹了java開發(fā)WMS倉庫商品預警需求示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Spring使用@responseBody與序列化詳解

    Spring使用@responseBody與序列化詳解

    這篇文章主要介紹了Spring使用@responseBody與序列化詳解,@responseBody注解的作用是將controller的方法返回的對象通過適當?shù)霓D(zhuǎn)換器轉(zhuǎn)換為指定的格式之后,寫入到response對象的body區(qū),通常用來返回JSON數(shù)據(jù)或者是XML數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • 詳解SpringBoot定制@ResponseBody注解返回的Json格式

    詳解SpringBoot定制@ResponseBody注解返回的Json格式

    這篇文章主要介紹了詳解SpringBoot定制@ResponseBody注解返回的Json格式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論