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

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

用于在列表中查找出現的 Java 流

用于在列表中查找出現的 Java 流

元芳怎么了 2021-11-24 15:11:58
我正在嘗試使用執行以下操作的 Java 流編寫此代碼 -獲取 KeyValuePairs 列表和 ListOfValues,并<Value, boolean>根據 ListOfKeyValuePairs 中是否存在值填充值來自 ListOfValues 的 Map,布爾值設置為 true 或 false。我正在開始類似的事情:keyValuePairs.stream().map(KeyValuePair::getValue) ...但無法完成它:(例子:List<KeyValuePairs> has {(1, A1), (2,A2), (3,A3)} ListofValues has {A1,A3}最終結果:帶有值的映射:A1,真和 A3,真
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

List<KeyValuePairs>可以轉換為 aSet<Value>以加速進一步的查找:

var set = pairs.stream()
               .map(KeyValuePair::getValue)
               .collect(Collectors.toSet());

然后,如果生成的地圖不應該包含在 中未找到的元素,請pairs通過set::contains以下方式將它們過濾掉:

var map = list.stream()
              .filter(set::contains)
              .collect(Collectors.toMap(Function.identity(), i -> true));

如果生成的地圖應包含來自 的每個元素list,無論它們是否已被找到:

var map = list.stream()
              .collect(Collectors.toMap(Function.identity(), set::contains));


查看完整回答
反對 回復 2021-11-24
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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