国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java解決stream流Collectors.groupingBy 分組統(tǒng)計(jì)可能報(bào)空指針異常

這篇具有很好參考價(jià)值的文章主要介紹了Java解決stream流Collectors.groupingBy 分組統(tǒng)計(jì)可能報(bào)空指針異常。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在使用stream流的Collectors.groupingBy做分組統(tǒng)計(jì)時(shí)(示例代碼如下)

	Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));

如果統(tǒng)計(jì)的字段userName有null值則會(huì)報(bào)如下錯(cuò)誤

java.lang.NullPointerException: element cannot be mapped to a null key

	at java.util.Objects.requireNonNull(Objects.java:228)
	at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)

Java解決stream流Collectors.groupingBy 分組統(tǒng)計(jì)可能報(bào)空指針異常,java,開發(fā)語言
解決方法為在統(tǒng)計(jì)之前增加一個(gè)filter方法將null值事先過濾掉。代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-758779.html

Map<String, Long> collect = list.stream().filter((item) -> StringUtils.isNotBlank(item.getUserName()))
                .collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));

到了這里,關(guān)于Java解決stream流Collectors.groupingBy 分組統(tǒng)計(jì)可能報(bào)空指針異常的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Collectors.groupingBy()進(jìn)行分組時(shí),分組值存在null值會(huì)報(bào)NPE(空指針)錯(cuò)誤,使用時(shí)要注意

    1、使用Collectors.groupingBy()進(jìn)行分組時(shí),分組值存在null值。 解決辦法:分組值為null時(shí),默認(rèn)值為空字符。

    2024年02月14日
    瀏覽(31)
  • Java Stream 處理分組后取每組最大&Stream流之list轉(zhuǎn)map、分組取每組第一條&Java 8 Collectors:reducing 示例(List分組取最值)

    Java Stream 處理分組后取每組最大&Stream流之list轉(zhuǎn)map、分組取每組第一條&Java 8 Collectors:reducing 示例(List分組取最值)

    有一個(gè)需求功能:先按照某一字段分組,再按照另外字段獲取最大的那個(gè) 先根據(jù)appId分組,然后根據(jù)versionSort取最大. JDK1.8推出的stream流能極大的簡化對(duì)集合的操作,讓代碼更美觀,老規(guī)矩,直接上代碼。 取list中對(duì)象的某個(gè)屬性作為唯一key,對(duì)象作為value形成一個(gè)map集合,能

    2024年02月16日
    瀏覽(28)
  • java根據(jù)分組函數(shù)GroupingBy進(jìn)行多個(gè)條件組合分組

    在SQL中經(jīng)常會(huì)用到分組,我們也常常遇到一些組合分組的場景。 java8分組 傳統(tǒng)寫法(單個(gè)字段分組) 場景:根據(jù) 城市 進(jìn)行分組 使用的是方法引用:User::getCity 來完成分組 java8分組 傳統(tǒng)寫法(多個(gè)字段分組) 場景:根據(jù) 城市,性別進(jìn)行分組 一般的寫法會(huì)是下面的這種寫法,

    2023年04月19日
    瀏覽(17)
  • Java8用Stream流一行代碼實(shí)現(xiàn)數(shù)據(jù)分組統(tǒng)計(jì),排序,最大值、最小值、平均值、總數(shù)、合計(jì)

    Java8用Stream流一行代碼實(shí)現(xiàn)數(shù)據(jù)分組統(tǒng)計(jì),排序,最大值、最小值、平均值、總數(shù)、合計(jì)

    Java8對(duì)數(shù)據(jù)處理可謂十分流暢,既不改變數(shù)據(jù),又能對(duì)數(shù)據(jù)進(jìn)行很好的處理,今天給大家演示下,用Java8的Stream如何對(duì)數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),排序,求和等 匯總統(tǒng)計(jì)方法 找到匯總統(tǒng)計(jì)的方法。這些方法屬于java 8的匯總統(tǒng)計(jì)類。 getAverage(): 它返回所有接受值的平均值。 getCount():

    2023年04月20日
    瀏覽(24)
  • 如何在Stream流中分組統(tǒng)計(jì)

    如何在Stream流中分組統(tǒng)計(jì)

    上面是今天碰到需求,之前就做過類似的分組統(tǒng)計(jì),這個(gè)相對(duì)來說比較簡單,統(tǒng)計(jì)的也少, 序號(hào) 和 總預(yù)約人數(shù) 這兩部分交給前端了,不需要由后端統(tǒng)計(jì),后端統(tǒng)計(jì)一下 預(yù)約日期 和 檢查項(xiàng)目 和 預(yù)約人數(shù) 就行;

    2024年02月13日
    瀏覽(18)
  • 【Java基礎(chǔ)】Stream 流中 Collectors.toMap 的用法

    Collectors.toMap() 方法是把 List 轉(zhuǎn) Map 的操作 1.1、如果不是對(duì)象,是數(shù)組,怎么轉(zhuǎn)成map? 按照規(guī)范來寫的話,最好所有toMap,都要將這個(gè)異常提前考慮進(jìn)去,不然有時(shí)候會(huì)報(bào)重復(fù)主鍵異常,這也是正例的寫法,上面的屬于反例的寫法。 2.1、Collectors.toMap 有三個(gè)重載方法:? 參數(shù)解

    2024年02月14日
    瀏覽(18)
  • 使用Java8 Stream流中的Collectors.collectingAndThen()方法去重

    Collectors.collectingAndThen() 根據(jù)對(duì)象屬性進(jìn)行去重操作 Collectors.collectingAndThen()方法屬于java8 Stream流中的 java.util.stream.Collectors ,此類實(shí)現(xiàn)了 java.util.stream.Collector 接口,還提供了大量的方法對(duì)Stream流中的元素進(jìn)行 map 和 reduce 操作 在獲取任務(wù)的時(shí)候,會(huì)出現(xiàn)id重復(fù)的狀況,利用 Co

    2024年02月09日
    瀏覽(103)
  • java8 Stream流Collectors.toMap當(dāng)value為null時(shí)報(bào)空指針異常(NPE)

    java8 Stream流Collectors.toMap當(dāng)value為null時(shí)報(bào)空指針異常(NPE)

    一、問題 在項(xiàng)目測試過程中發(fā)現(xiàn)當(dāng)使用下面這種方法后報(bào)空指針異常(NPE): 按理說 HashMap 的 key?和 value 都是可以為 null?的,不應(yīng)該報(bào) NPE 啊,經(jīng)過定位分析發(fā)現(xiàn) Map 中有個(gè)鍵值對(duì)的 value 為 null?值,在調(diào)用 Collectors.toMap 時(shí)報(bào)了 NullPointerException 。 二、分析 Collectors.toMap?的

    2024年02月15日
    瀏覽(18)
  • Java stream 分組操作

    根據(jù)單/多字段分組 單字段分組可以直接使用指定字段,多字段分組則采用拼接Key的形式 單字段: 多字段: 多層級(jí): 測試

    2024年02月15日
    瀏覽(25)
  • java stream實(shí)現(xiàn)分組BigDecimal求和,自定義分組求和

    隨著微服務(wù)的發(fā)展,越來越多的sql處理被放到j(luò)ava來處理,數(shù)據(jù)庫經(jīng)常會(huì)使用到對(duì)集合中的數(shù)據(jù)進(jìn)行分組求和,分組運(yùn)算等等。 那怎么樣使用java的stream優(yōu)雅的進(jìn)行分組求和或運(yùn)算呢? 這里測試數(shù)據(jù)學(xué)生,年齡類型是Integer,身高類型是BigDecimal,我們分別對(duì)身高個(gè)年齡進(jìn)行求和

    2024年02月01日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包