Java HashMap compute() 使用方法及示例
Java HashMap compute()方法計算一個新值,并將其與哈希映射中的指定鍵相關聯。
compute()方法的語法為:
hashmap.compute(K?key,?BiFunction?remappingFunction)
compute()參數
compute()方法有兩個參數:key - 與計算值關聯的鍵
remappingFunction- 為指定鍵計算新值的函數
注意:remappingFunction可以接受兩個參數。
compute()返回值返回與鍵關聯的新值
如果沒有與鍵關聯的值,則返回null
注意:如果remappingFunction結果為null,則將刪除指定鍵的映射。
示例:HashMap compute()插入新值
示例
import?java.util.HashMap;
class?Main?{
public?static?void?main(String[]?args)?{
//創建?HashMap
HashMap?prices?=?new?HashMap<>();
//向HashMap插入條目
prices.put("Shoes",?200);
prices.put("Bag",?300);
prices.put("Pant",?150);
System.out.println("HashMap:?"?+?prices);
//以10%的折扣重新計算鞋子的價格
int?newPrice?=?prices.compute("Shoes",?(key,?value)?->?value?-?value?*?10/100);
System.out.println("鞋折扣價:?"?+?newPrice);
//打印更新的HashMap
System.out.println("更新后的?HashMap:?"?+?prices);
}
}
輸出結果HashMap:?{Pant=150,?Bag=300,?Shoes=200}
鞋折扣價:?180
更新后的?HashMap:?{Pant=150,?Bag=300,?Shoes=180
在上面的示例中,我們創建了一個名為prices的哈希映射。注意表達式
prices.compute("Shoes",?(key,?value)?->?value?-?value?*?10/100)
這里,(key, value) -> value - value * 10/100 - ?這是一個lambda表達式。它將鞋的原價降低10%并返回。了解有關lambda表達式的更多信息,請訪問Java Lambda 表達式。
prices.compute() - 將lambda表達式返回的新值與Shoes的映射相關聯。
注意:根據Java的官方文檔,HashMap merge()方法比compute()方法更簡單。
推薦閱讀