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

Java的stream流多個(gè)字段排序的實(shí)現(xiàn)

 更新時(shí)間:2023年10月18日 11:26:58   作者:碼奴生來(lái)只知道前進(jìn)~  
本文主要介紹了Java的stream流多個(gè)字段排序的實(shí)現(xiàn),主要是兩種方法,第一種是固定多個(gè)字段排序和第二種動(dòng)態(tài)字段進(jìn)行排序,具有一定的參考價(jià)值,感興趣的可以了解一下

1、第一種是固定多個(gè)字段排序 

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

class Person {
    String name;
    int age;
    double salary;

    public Person(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}

public class Main {
    public static void main(String[] args) {
        List<Person> people = Arrays.asList(
                new Person("張三", 30, 5000),
                new Person("李四", 25, 6000),
                new Person("王五", 35, 4000)
        );

        List<Person> sortedPeople = people.stream()
                .sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge).thenComparing(Person::getSalary))
                .collect(Collectors.toList());

        sortedPeople.forEach(System.out::println);
    }
}

2、第二種動(dòng)態(tài)字段進(jìn)行排序 

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

class Person {
    String name;
    int age;
    double salary;

    public Person(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}

public class Main {
    public static void main(String[] args) {
        List<Person> people = Arrays.asList(
                new Person("張三", 30, 5000),
                new Person("李四", 25, 6000),
                new Person("王五", 35, 4000)
        );

        // 動(dòng)態(tài)傳入排序字段
        String sortField = "age"; // 可以修改為"name"或"salary"

        List<Person> sortedPeople = people.stream()
                .sorted(getComparator(sortField))
                .collect(Collectors.toList());

        System.out.println(sortedPeople);
    }

    private static Comparator<Person> getComparator(String sortField) {
        switch (sortField) {
            case "name":
                return Comparator.comparing(Person::getName);
            case "age":
                return Comparator.comparingInt(Person::getAge);
            case "salary":
                return Comparator.comparingDouble(Person::getSalary);
            default:
                throw new IllegalArgumentException("Invalid sort field: " + sortField);
        }
    }
}

 到此這篇關(guān)于Java的stream流多個(gè)字段排序的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java stream多字段排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中的優(yōu)化

    Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中的優(yōu)化

    Elasticsearch(ES)使用倒排索引來(lái)加速文本的搜索速度,倒排索引之所以高效,主要是因?yàn)樗淖兞藬?shù)據(jù)的組織方式,使得查詢操作可以快速完成,這篇文章主要給大家介紹了關(guān)于Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • IDEA 2020.1.2 安裝教程附破解教程詳解

    IDEA 2020.1.2 安裝教程附破解教程詳解

    這篇文章主要介紹了IDEA 2020.1.2 安裝教程附帶破解教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴

    SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴

    這篇文章主要介紹了SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程

    spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程

    本文詳細(xì)介紹了如何使用Spring Boot和RocketMQ進(jìn)行整合,并提供了一個(gè)簡(jiǎn)單的示例工程,描述了如何本地啟動(dòng)RocketMQ服務(wù)端,并使用IntelliJ IDEA創(chuàng)建和配置了一個(gè)Spring Boot項(xiàng)目,包含了生產(chǎn)者和消費(fèi)者,并解決了在Spring Boot 3.x版本中RocketMQTemplate沒(méi)有bean注入的問(wèn)題
    2024-11-11
  • SpringBoot中使用Quartz設(shè)置定時(shí)任務(wù)的實(shí)例詳解

    SpringBoot中使用Quartz設(shè)置定時(shí)任務(wù)的實(shí)例詳解

    Quartz是OpenSymphony開(kāi)源組織在任務(wù)調(diào)度領(lǐng)域的一個(gè)開(kāi)源項(xiàng)目,完全基于 Java 實(shí)現(xiàn),本文小編給大家介紹了SpringBoot中如何使用Quartz設(shè)置定時(shí)任務(wù),文中通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java?spring注解@PostConstruct實(shí)戰(zhàn)案例講解

    Java?spring注解@PostConstruct實(shí)戰(zhàn)案例講解

    我們?cè)赟pring項(xiàng)目中經(jīng)常會(huì)遇到@PostConstruct注解,可能有的伙伴對(duì)這個(gè)注解很陌生,下面這篇文章主要給大家介紹了關(guān)于Java?spring注解@PostConstruct實(shí)戰(zhàn)案例講解的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Elasticsearch配置文件選項(xiàng)作用詳解(es7)

    Elasticsearch配置文件選項(xiàng)作用詳解(es7)

    這篇文章主要為大家介紹了Elasticsearch配置文件選項(xiàng)作用詳解(es7),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java并發(fā)中的ThreadLocal使用詳解

    Java并發(fā)中的ThreadLocal使用詳解

    ThreadLocal 是 Java 中實(shí)現(xiàn)線程局部變量的重要工具,它能讓每個(gè)線程擁有自己獨(dú)立的變量副本,從而在多線程環(huán)境下避免共享數(shù)據(jù)的競(jìng)爭(zhēng)問(wèn)題,下面給大家介紹java并發(fā)中的ThredLocal使用詳解,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的緩存簡(jiǎn)單案例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • java操作excel導(dǎo)入導(dǎo)出的3種方式

    java操作excel導(dǎo)入導(dǎo)出的3種方式

    項(xiàng)目需要,要實(shí)現(xiàn)一個(gè)導(dǎo)入導(dǎo)出excel的功能,于是任務(wù)驅(qū)動(dòng)著我學(xué)習(xí)到了POI、easypoi和easyexcel這3個(gè)java操作Excel的工具,下面這篇文章主要給大家介紹了關(guān)于java操作excel導(dǎo)入導(dǎo)出的3種方式,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

郸城县| 崇文区| 普洱| 邯郸县| 赤峰市| 虹口区| 秦安县| 海伦市| 建平县| 木兰县| 青阳县| 科技| 舟曲县| 怀柔区| 叙永县| 兴义市| 浦城县| 酉阳| 庆城县| 乌拉特前旗| 阿克| 苏尼特左旗| 富顺县| 瑞昌市| 万州区| 盘山县| 胶州市| 苏尼特左旗| 马关县| 汉沽区| 平舆县| 遵义县| 永康市| 凤翔县| 海淀区| 辽宁省| 桦南县| 洛川县| 疏附县| 舟山市| 东方市|