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

Java實現(xiàn)stream的三個常用方式(toMap,groupingBy,findFirst)

 更新時間:2023年10月17日 10:40:20   作者:我老菜  
本文主要介紹了Java實現(xiàn)stream的三個常用方式,主要包括toMap,groupingBy,findFirst,具有一定的參考價值,感興趣的可以了解一下

一、stream().findFirst().orElse(null)

最簡單開始:
1:查詢/刪除時,接口入?yún)⒆詈脤懗膳康模ú恍枰峁﹩蝹€參數(shù)的查詢/刪除)。
2:拒絕list.get(0)的當時,改用stream().findFirst().orElse(null)。

    /**
     * LambdaQueryWrapper 沒找到就返回null,找到了返回第一條
     */
    @RequestMapping(value = "getOne", method = RequestMethod.POST)
    public ListStream getOne() {
    
        return listStreamService.list(new LambdaQueryWrapper<ListStream>()
                .eq(ListStream::getDelFlag, 0)
                .eq(ListStream::getAge, 24)
        ).stream().findFirst().orElse(null);
        
    }

二、toMap

業(yè)務場景:需要取出listA中指定某條數(shù)據(jù)。
拒絕循環(huán)判斷,現(xiàn)將數(shù)據(jù)轉成Map<Long,Entity>,通過map.get(Key) 獲取指定數(shù)據(jù)
key:id
value:數(shù)據(jù)

    @RequestMapping(value = "listToMap", method = RequestMethod.POST)
    public void listToMap() {
        //getList
        List<ListStream> list = listStreamService.list();
        
        //key:value = id:lisStream
        Map<Long, ListStream> result = list.stream()
                .collect(Collectors.toMap(ListStream::getId, v -> v));
                
        //打印結果
        for (Map.Entry<Long, ListStream> entry : result.entrySet()) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
            System.out.println("--------------------");
        }
    }

三、groupingBy

業(yè)務場景:有100個人,年齡分部在18-30歲。要求按照年齡進行分組
key:年齡
value:數(shù)據(jù)列表

    @RequestMapping(value = "listToMapGroup", method = RequestMethod.POST)
    public void listToMapGroup() {
        List<ListStream> list = listStreamService.list();
        
        //按照age進行分組
        Map<Integer, List<ListStream>> result = list.stream()
                .collect(Collectors.groupingBy(ListStream::getAge));
                
        //打印結果
        result.forEach((k, v) -> {
            System.out.println(k);
            System.out.println(v);
            System.out.println("--------------------");
        });
    }

四、Lists.newArrayList()

初始化一個有值的List。拒絕list.add()、list.addAll()

    public static void main(String[] args) {
        List<String> strList = Lists.newArrayList("1","2","3");
        System.out.println(strList);
    }

總結

1:拒絕反復請求數(shù)據(jù)庫(減少io),一個業(yè)務里,一張表盡量只查一次(提前將入?yún)⒕酆?,統(tǒng)一請求數(shù)據(jù)庫生成Map(Long,Entity),后續(xù)要用指定數(shù)據(jù)時,從map中獲取)。
2:請求mapper里盡量不含有業(yè)務邏輯,將mapper的方法考慮由service統(tǒng)一提供接口。避免mapper到處飛的情況。
每個service只能用自己的mapper,通過注入其他service從而調用其他mapper

到此這篇關于Java實現(xiàn)stream的三個常用方式(toMap,groupingBy,findFirst)的文章就介紹到這了,更多相關Java stream常用方式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java?Stream?的?sorted實現(xiàn)自定義排序從基礎到高級技巧

    Java?Stream?的?sorted實現(xiàn)自定義排序從基礎到高級技巧

    本文將介紹如何使用sorted()方法實現(xiàn)自定義排序,涵蓋各種常見場景和高級技巧,通過掌握?sorted()?方法的各種用法,你可以靈活應對各種復雜的排序需求,編寫出簡潔、高效且易于維護的代碼,需要的朋友跟隨小編一起學習吧
    2025-08-08
  • 10個SpringBoot參數(shù)驗證你需要知道的技巧分享

    10個SpringBoot參數(shù)驗證你需要知道的技巧分享

    參數(shù)驗證很重要,是平時開發(fā)環(huán)節(jié)中不可少的一部分,那么在Spring?Boot應用中如何做好參數(shù)校驗工作呢,本文提供了10個小技巧,你知道幾個呢
    2023-03-03
  • java 單播、廣播、組播詳解及實例代碼

    java 單播、廣播、組播詳解及實例代碼

    這篇文章主要介紹了java 單播、廣播、組播詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • spring boot2.0實現(xiàn)優(yōu)雅停機的方法

    spring boot2.0實現(xiàn)優(yōu)雅停機的方法

    這篇文章主要介紹了spring boot2.0實現(xiàn)優(yōu)雅停機的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android應用開發(fā)之將SQLite和APK一起打包的方法

    Android應用開發(fā)之將SQLite和APK一起打包的方法

    這篇文章主要介紹了Android應用開發(fā)之將SQLite和APK一起打包的方法,文章時間較早,盡管現(xiàn)在開發(fā)環(huán)境已大都遷移至Android Studio上,但打包原理依然相同,需要的朋友可以參考下
    2015-08-08
  • Java解析照片拿到GPS位置數(shù)據(jù)的詳細步驟

    Java解析照片拿到GPS位置數(shù)據(jù)的詳細步驟

    這篇文章主要介紹了Java解析照片拿到GPS位置數(shù)據(jù),本文給大家介紹代碼環(huán)境及核心代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 使用SpringBoot獲取resources文件路徑

    使用SpringBoot獲取resources文件路徑

    這篇文章主要介紹了使用SpringBoot獲取resources文件路徑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring Initializr中生成的mvnw有什么用

    Spring Initializr中生成的mvnw有什么用

    這篇文章主要介紹了Spring Initializr中生成的mvnw有什么用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java的泛型擦除和運行時泛型信息獲取方式

    Java的泛型擦除和運行時泛型信息獲取方式

    Java泛型在編譯時會發(fā)生類型擦除,即泛型參數(shù)被替換為它們的限定類型(如Object),這使得ArrayList<Integer>和ArrayList<String>在運行時類型相同,盡管如此,我們可以通過定義類或匿名內部類的方式在運行時獲取泛型信息
    2024-09-09
  • SpringBoot框架RESTful接口設置跨域允許

    SpringBoot框架RESTful接口設置跨域允許

    這篇文章主要為大家詳細介紹了SpringBoot框架RESTful接口設置跨域允許,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

自治县| 美姑县| 河南省| 环江| 稻城县| 始兴县| 奎屯市| 洛扎县| 蓬安县| 乳源| 榆林市| 通州市| 铜川市| 忻城县| 兴和县| 全州县| 沭阳县| 麻城市| 开阳县| 道真| 磐安县| 加查县| 岚皋县| 新泰市| 玛曲县| 临沭县| 钦州市| 清远市| 辰溪县| 新乡市| 济宁市| 宜州市| 岳阳市| 龙门县| 虞城县| 德清县| 调兵山市| 玛沁县| 新密市| 厦门市| 临澧县|