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

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

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

一、排序場景

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

二、指定條件排序

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

2.1 調(diào)用 list sort 方法,實(shí)現(xiàn)比較器接口進(jì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 表達(dá)式實(shí)現(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 方法,實(shí)現(xiàn)比較器接口進(jì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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

旌德县| 郧西县| 东山县| 布尔津县| 泸溪县| 库车县| 万盛区| 甘泉县| 三江| 凤城市| 化隆| 搜索| 牟定县| 盐山县| 华安县| 凤城市| 桐乡市| 日喀则市| 江永县| 峨山| 武义县| 修文县| 鄄城县| 马尔康县| 五河县| 平顶山市| 内丘县| 射阳县| 年辖:市辖区| 灵山县| 纳雍县| 顺昌县| 平陆县| 永宁县| 贵溪市| 邢台县| 永顺县| 民权县| 镇平县| 罗源县| 独山县|