第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何使用 Java 8 流過濾 Hashmap 以動態(tài)更新值?

如何使用 Java 8 流過濾 Hashmap 以動態(tài)更新值?

米脂 2024-01-25 21:38:41
我有一個場景,我不確定過濾哈希圖和更新同一映射的有效方法是什么。這是我的哈希圖; Map<Double, List<Product>> mappedProducts = new HashMap<>(); 我已經(jīng)用某種方法將mappedProducts 中的鍵和值放在了一起。現(xiàn)在,在另一種方法中,我嘗試根據(jù)我的鍵值是否大于產(chǎn)品的屬性權(quán)重來過濾產(chǎn)品列表。這就是我所做的,雖然它工作得很好,但我不確定這是否是最有效和最高效的方法??纯聪旅娴拇a;this.mappedProducts.entrySet().stream().filter(packList ->{        mappedProducts.put(packList.getKey(), packList.getValue().stream().filter(pack ->{                if(pack.getWeight() <= packList.getKey())                    return true;                return false;        }).collect(Collectors.toList()));        return true;    }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));System.out.println("Filtered Products"+mappedProducts);還有其他更好的方法來完成這項工作嗎?
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

如果您想要過濾后的新地圖:保留所有產(chǎn)品的權(quán)重均小于鍵的條目

Map<Double, List<Product>> filtered = mappedProducts.entrySet()
        .stream()
        .filter(packList -> packList.getValue().stream().allMatch(pack -> pack.getWeight() < packList.getKey()))
        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

如果要修改主圖:刪除其中一種產(chǎn)品的權(quán)重高于鍵的所有條目

mappedProducts.entrySet()
              .removeIf(packList -> packList.getValue().stream().anyMatch(pack -> pack.getWeight() > packList.getKey()));



查看完整回答
反對 回復(fù) 2024-01-25
  • 1 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號