亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

映射時處理復制鍵

映射時處理復制鍵

縹緲止盈 2023-05-17 16:03:12
我的問題是java.lang.IllegalStateException: Duplicate key每次嘗試映射String時都會遇到List. 有沒有辦法編輯此實現以某種方式處理重復鍵?或者我應該用另一種方式來做嗎?Map<String, List<Fee>> feeAccountMap = ContractList            .stream()            .filter(o -> !o.getStatus().equals(ContractStatus.CLOSED))            .collect(Collectors.toMap(o -> o.getFeeAccount(), o -> {                List<Fee> monthlyFees;                try {                    monthlyFees = contractFeeService.getContractMonthlyFees(o);                } catch (Exception e) {                    throw new RuntimeException(e);                }                return monthlyFees;            }            ));
查看完整描述

1 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

添加合并功能。例如:


Map<String, List<Fee>> feeAccountMap = ContractList

            .stream()

            .filter(o -> !o.getStatus().equals(ContractStatus.CLOSED))

            .collect(Collectors.toMap(o -> o.getFeeAccount(), o -> {

                List<Fee> monthlyFees;

                try {

                    monthlyFees = contractFeeService.getContractMonthlyFees(o);

                } catch (Exception e) {

                    throw new RuntimeException(e);

                }

                return monthlyFees;

            }, (value1, value2) -> value1

            ));

由于您的值Map似乎是鍵的函數,因此當您有兩個具有相同鍵的值時,您可以簡單地返回其中一個值。


這是假設如果 的兩個元素ContractList返回相同的Stringfor getFeeAccount(),則它們彼此相等。


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號