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

解決java.lang.IllegalStateException:Duplicate key異常問(wèn)題

 更新時(shí)間:2025年03月08日 10:25:56   作者:早起的年輕人  
java.lang.IllegalStateException:Duplicatekey異常在將List轉(zhuǎn)換為Map時(shí)出現(xiàn),解決方法是使用toMap()的重載方法,如果已經(jīng)存在則不再修改,直接使用上一個(gè)數(shù)據(jù)

java.lang.IllegalStateException:Duplicate key異常

使用場(chǎng)景

在實(shí)際應(yīng)用開(kāi)發(fā)中,會(huì)常把一個(gè)List的查詢數(shù)據(jù)集合轉(zhuǎn)為一個(gè)Map,那么在這里的 list.stream().collect()其實(shí)就是做了這么一件事情,它是java8的stream方式實(shí)現(xiàn)的它是以type為key,以entity對(duì)象為value構(gòu)成Map。

    //查詢
    List<QuestionCategoryEntity> list = questionCategoryService.selectList(entityWrapper);
    
    Map<String, String> categoryMap = list.stream().collect(
        Collectors.toMap(
            QuestionCategoryEntity::getCategoryCode,
            QuestionCategoryEntity::getCategoryName
        )
    );

在有些業(yè)務(wù)場(chǎng)景中會(huì)出現(xiàn)如下異常:Duplicate key ,map的key重復(fù),如上的 QuestionCategoryEntity::getCategoryCode。

java.lang.IllegalStateException: Duplicate key 專項(xiàng)考試
    at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
    at java.util.HashMap.merge(HashMap.java:1245)
    at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
... ...

解決方法

使用toMap()的重載方法,如果已經(jīng)存在則不再修改,直接使用上一個(gè)數(shù)據(jù)。

    //查詢
    List<QuestionCategoryEntity> list = questionCategoryService.selectList(entityWrapper);
    
    Map<String, String> categoryMap = list.stream().collect(
        Collectors.toMap(
            QuestionCategoryEntity::getCategoryCode,
            QuestionCategoryEntity::getCategoryName,
            (entity1, entity2) -> entity1
        )
    );

等效于

questionCategoryService.selectList(entityWrapper);
    
    Map<String, String> categoryMap = list.stream().collect(
        Collectors.toMap(
            QuestionCategoryEntity::getCategoryCode,
            QuestionCategoryEntity::getCategoryName,
            (entity1, entity2) {
            	return entity1
            }
        )
    );

(entity1, entity2) -> entity1 這里使用的箭頭函數(shù),也就是說(shuō)當(dāng)出現(xiàn)了重復(fù)key的數(shù)據(jù)時(shí),會(huì)回調(diào)這個(gè)方法,可以在這個(gè)方法里處理重復(fù)Key數(shù)據(jù)問(wèn)題,小編這里粗暴點(diǎn),直接使用了上一個(gè)數(shù)據(jù)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SMBMS超市訂單管理系統(tǒng)的網(wǎng)站源碼

    SMBMS超市訂單管理系統(tǒng)的網(wǎng)站源碼

    這篇文章主要介紹了SMBMS超市訂單管理系統(tǒng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java中comparator接口和Comparable接口的比較解析

    Java中comparator接口和Comparable接口的比較解析

    這篇文章主要介紹了Java中comparator接口和Comparable接口的比較解析,Java提供了一個(gè)用于比較的接口Comparator和Comparable接口,提供了一個(gè)比較的方法,所有實(shí)現(xiàn)該接口的類,都動(dòng)態(tài)的實(shí)現(xiàn)了該比較方法,需要的朋友可以參考下
    2023-08-08
  • Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧

    Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧

    做項(xiàng)目的時(shí)候我們肯定接觸過(guò)很多jar包,下面這篇文章主要給大家介紹了關(guān)于Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • mybatis resultmap 如何為對(duì)象賦值的調(diào)用順序

    mybatis resultmap 如何為對(duì)象賦值的調(diào)用順序

    這篇文章主要介紹了mybatis resultmap 如何為對(duì)象賦值的調(diào)用順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    這篇文章主要介紹了Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能,結(jié)合具體實(shí)例形式分析了java分治算法進(jìn)行排序索引的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • 動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    開(kāi)發(fā)系統(tǒng)過(guò)程中遇到的一個(gè)需求,系統(tǒng)給定一個(gè)接口,用戶可以自定義開(kāi)發(fā)該接口的實(shí)現(xiàn),并將實(shí)現(xiàn)打成jar包,上傳到系統(tǒng)中。系統(tǒng)完成熱部署,并切換該接口的實(shí)現(xiàn)。本文詳細(xì)介紹了實(shí)現(xiàn)方法,需要的可以參考一下
    2022-10-10
  • java爬蟲(chóng)jsoup解析HTML的工具學(xué)習(xí)

    java爬蟲(chóng)jsoup解析HTML的工具學(xué)習(xí)

    jsoup是一個(gè)解析HTML的第三方j(luò)ava庫(kù),它提供了一套非常方便的API,可使用DOM,CSS以及類jQuery的操作方法來(lái)取出和操作數(shù)據(jù),本文就來(lái)開(kāi)始jsoup的使用學(xué)習(xí)
    2022-07-07
  • Mybatis實(shí)現(xiàn)SQL存儲(chǔ)流程詳解

    Mybatis實(shí)現(xiàn)SQL存儲(chǔ)流程詳解

    MyBatis作為一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。它免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作
    2023-03-03
  • Java IText異常NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable的解決方法

    Java IText異常NoClassDefFoundError: org/bouncycastle

    在使用Java進(jìn)行PDF文檔操作時(shí),iText是一個(gè)非常強(qiáng)大的庫(kù),然而,在實(shí)際開(kāi)發(fā)過(guò)程中,可能會(huì)遇到一些異常情況,其中之一就是??NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable??,本文將探討這個(gè)錯(cuò)誤的原因及其解決方案,需要的朋友可以參考下
    2025-02-02
  • springMVC引入Validation的具體步驟詳解

    springMVC引入Validation的具體步驟詳解

    本文簡(jiǎn)單介紹如何引入validation的步驟,如何通過(guò)自定義validation減少代碼量,提高生產(chǎn)力,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-05-05

最新評(píng)論

天水市| 临夏市| 墨江| 新龙县| 中超| 镇沅| 运城市| 上杭县| 珠海市| 萨嘎县| 三明市| 英山县| 新河县| 平阳县| 禄丰县| 河池市| 郑州市| 宁城县| 台中县| 辽宁省| 长宁区| 明星| 铜陵市| 连平县| 佳木斯市| 通榆县| 兴义市| 乌海市| 分宜县| 彭阳县| 常宁市| 南岸区| 天峻县| 定远县| 兴文县| 嘉定区| 准格尔旗| 肥东县| 梨树县| 隆德县| 南岸区|