亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中Stream流對多個(gè)字段進(jìn)行排序的方法

 更新時(shí)間:2023年10月20日 10:10:17   作者:哥的冷酷,你模仿不來  
我們在處理數(shù)據(jù)的時(shí)候經(jīng)常會需要進(jìn)行排序后再返回給前端調(diào)用,比如按照時(shí)間升序排序,前端展示數(shù)據(jù)就是按時(shí)間先后進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Java中Stream流對多個(gè)字段進(jìn)行排序的相關(guān)資料,需要的朋友可以參考下

前言

談起Java 8,不少熟悉它的人,都會知道有一個(gè)對我們幫助很大的新特性,沒錯(cuò),就是我們在項(xiàng)目中經(jīng)常用到的stream,它對我們處理數(shù)據(jù)的過程中提供了很多的便利,而這邊文章主要講述stream的便利之一:對多個(gè)字段進(jìn)行排序

1、首先我們在數(shù)據(jù)庫中插入幾條樣例數(shù)據(jù)

要求:按照nick_name、address、age順序進(jìn)行排序

2、我們先用sql查詢的方式對數(shù)據(jù)進(jìn)行排序

3、通過stream流的方式進(jìn)行排序

代碼實(shí)現(xiàn):

  public Object selectList() {
        List<User> userList = userMapper.selectList(new QueryWrapper<>());
        Comparator<User>comparator =Comparator.comparing(User::getNickName)
                .thenComparing(User::getAddress)
                .thenComparing(User::getAge);
        userList = userList.stream().sorted(comparator).collect(Collectors.toList());
        return userList;
    }

結(jié)果展示:

[
    {
        "id": 2,
        "userName": "zhangsan",
        "nickName": "張三",
        "password": "123456",
        "address": "武漢",
        "phone": "18178523659",
        "sex": 1,
        "age": 42,
        "createTime": "2023-07-15 13:30:52"
    },
    {
        "id": 3,
        "userName": "zhangsan102",
        "nickName": "張三",
        "password": "123456",
        "address": "武漢",
        "phone": "15236985214",
        "sex": 1,
        "age": 57,
        "createTime": "2023-07-15 13:31:27"
    },
    {
        "id": 4,
        "userName": "zhangshan103",
        "nickName": "張三",
        "password": "123456",
        "address": "西安",
        "phone": "18956235841",
        "sex": 1,
        "age": 36,
        "createTime": "2023-07-15 13:32:28"
    },
    {
        "id": 1,
        "userName": "admin",
        "nickName": "超級管理員",
        "password": "123456",
        "address": "武漢",
        "phone": "15172378154",
        "sex": 1,
        "age": 30,
        "createTime": "2023-05-08 11:45:31"
    }
]

通過代碼我們可以知道通過stream的sorted()方法就可實(shí)現(xiàn)我們想要的結(jié)果,原理還是利用Comparator比較器對要排序的字段進(jìn)行比較,如果想倒序,則在比較器后面加上reversed(),該方法是對排序后的數(shù)據(jù)進(jìn)行一個(gè)反轉(zhuǎn)。

小結(jié):雖然對多個(gè)字段進(jìn)行排序有時(shí)候通過sql語句就能實(shí)現(xiàn),但有時(shí)候一些特殊場景導(dǎo)致不能使用sql排序的時(shí)候,stream就能派上用場了

總結(jié)

到此這篇關(guān)于Java中Stream流對多個(gè)字段進(jìn)行排序的文章就介紹到這了,更多相關(guān)Java Stream流多字段排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何通過XML方式配置并實(shí)現(xiàn)Mybatis

    如何通過XML方式配置并實(shí)現(xiàn)Mybatis

    這篇文章主要介紹了如何通過XML方式配置并實(shí)現(xiàn)Mybatis,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java?awt-對話框簡單實(shí)現(xiàn)方式

    Java?awt-對話框簡單實(shí)現(xiàn)方式

    這篇文章主要介紹了Java?awt-對話框簡單實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問題

    關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問題

    這篇文章主要介紹了關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中重寫和重載的區(qū)別及說明

    Java中重寫和重載的區(qū)別及說明

    Java語言中的重載和重寫是實(shí)現(xiàn)多態(tài)的兩種方式,但他們的實(shí)現(xiàn)方式和規(guī)則有所不同,重載發(fā)生在一個(gè)類中,同名的方法如果有不同的參數(shù)列表,則視為重載,重寫則發(fā)生在子類和父類之間,要求子類重寫方法和父類被重寫方法有相同的返回類型
    2024-10-10
  • java中Arthas的作用和使用方式

    java中Arthas的作用和使用方式

    Arthas 是由阿里巴巴開源的 Java 診斷工具,主要用于在生產(chǎn)環(huán)境中診斷和解決 Java 應(yīng)用問題,它提供實(shí)時(shí)監(jiān)控、類信息查看、動態(tài)追蹤、條件表達(dá)式斷點(diǎn)等功能,支持非侵入式設(shè)計(jì)和高擴(kuò)展性,通過 Arthas,開發(fā)者可以在不停止應(yīng)用的情況下,快速定位和解決問題
    2025-01-01
  • Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    這篇文章主要介紹了Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解Redis 緩存 + Spring 的集成示例

    詳解Redis 緩存 + Spring 的集成示例

    本篇文章主要介紹了Redis 緩存 + Spring 的集成示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • spring 集成 mybatis的實(shí)例詳解

    spring 集成 mybatis的實(shí)例詳解

    這篇文章主要介紹了spring 集成 mybatis的實(shí)例詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • JAVA的Random類的用法詳解

    JAVA的Random類的用法詳解

    Random類主要用來生成隨機(jī)數(shù),本文詳解介紹了Random類的用法,希望能幫到大家。
    2016-04-04
  • Spring?控制反轉(zhuǎn)和依賴注入的具體使用

    Spring?控制反轉(zhuǎn)和依賴注入的具體使用

    本文主要介紹了Spring?控制反轉(zhuǎn)和依賴注入,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論