Stream流排序數(shù)組和List?詳解
一、對象單字段排序
List<People> peopleList = Lists.newArrayList(); peopleList.add(new People(1, "小王", 5)); peopleList.add(new People(1, "小李", 4)); peopleList.add(new People(2, "小張", 3)); peopleList.add(new People(2, "小皇", 2)); peopleList.add(new People(2, "小劉", 1)); //單字段排序 peopleList = peopleList.stream().sorted(Comparator.comparing(People::getJgId)).collect(Collectors.toList()); log.info(peopleList.toString()); //這里是根據(jù)userId 進(jìn)行排序——降序排序 reversed() peopleList = peopleList.stream().sorted(Comparator.comparing(People::getJgId).reversed()).collect(Collectors.toList()); log.info(peopleList.toString());
二、多字段排序
List<People> peopleList = Lists.newArrayList(); peopleList.add(new People(1, "小王", 5)); peopleList.add(new People(1, "小李", 4)); peopleList.add(new People(2, "小張", 3)); peopleList.add(new People(2, "小皇", 2)); peopleList.add(new People(2, "小劉", 1)); //這里是根據(jù)Id及jgId進(jìn)行聯(lián)合升序排序 peopleList = peopleList.stream().sorted(Comparator.comparing(People::getId).thenComparing(People::getJgId)).collect(Collectors.toList()); log.info(peopleList.toString()); //下面兩個結(jié)果都是以Id降序jgId升序排序的結(jié)果,但是查詢方式不同 //先以id升序,升序結(jié)果進(jìn)行id降序,再進(jìn)行jgId升序 peopleList = peopleList.stream().sorted(Comparator.comparing(People::getId).reversed().thenComparing(People::getJgId)).collect(Collectors.toList()); log.info(peopleList.toString()); //先以id降序,再進(jìn)行jgId升序 **推薦使用該種方式** peopleList = peopleList.stream().sorted(Comparator.comparing(People::getId,Comparator.reverseOrder()).thenComparing(People::getJgId)).collect(Collectors.toList()); log.info(peopleList.toString()); //先以id升序,再進(jìn)行jgId降序 peopleList = peopleList.stream().sorted(Comparator.comparing(People::getId).thenComparing(People::getJgId,Comparator.reverseOrder())).collect(Collectors.toList()); log.info(peopleList.toString());
三、數(shù)組排序以及List<Integer>排序
先把數(shù)組轉(zhuǎn)換成List對象再進(jìn)行排序
到此這篇關(guān)于Stream流排序數(shù)組和List 詳解的文章就介紹到這了,更多相關(guān)Stream List 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java創(chuàng)建對象的六種常用方式總結(jié)
作為Java開發(fā)者,經(jīng)常創(chuàng)建很多對象,你是否知道Java中創(chuàng)建對象有哪些方式呢?下面這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建對象的六種常用方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06SpringBoot 統(tǒng)一請求返回的實現(xiàn)
這篇文章主要介紹了SpringBoot 統(tǒng)一請求返回的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Java聊天室之實現(xiàn)一個服務(wù)器與多個客戶端通信
這篇文章主要為大家詳細(xì)介紹了Java簡易聊天室之實現(xiàn)一個服務(wù)器與多個客戶端通信,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以了解一下2022-10-10SpringBoot整合weixin-java-pay實現(xiàn)微信小程序支付的示例代碼
微信小程序支付是常見的一種功能,本文主要介紹了SpringBoot整合weixin-java-pay實現(xiàn)微信小程序支付的示例代碼,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05Spring Boot JDBC 連接數(shù)據(jù)庫示例
本篇文章主要介紹了Spring Boot JDBC 連接數(shù)據(jù)庫示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02java數(shù)學(xué)工具類Math詳解(round方法)
這篇文章主要為大家詳細(xì)介紹了java數(shù)學(xué)工具類Math,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08