compute()
方法的语法是:
hashmap.compute(K key, BiFunction remappingFunction)
这里,
hashmap 是
HashMap
类的对象。
compute() 参数
compute()
方法有两个参数:
注意: remappingFunction 可以接受两个参数。因此,被视为 BiFunction。
compute() 返回值
返回与键相关联的新值 如果没有与 key 关联的值,则返回null
注意: 如果 remappingFunction 结果为 null,则删除指定键的映射。
示例: HashMap 计算()以插入新值
import java.util.HashMap; class Main { public static void main(String[] args) { // create an HashMap HashMap<String, Integer> prices = new HashMap<>(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // recompute the value of Shoes with 10% discount int newPrice = prices.compute("Shoes", (key, value)-> value-value * 10/100); System.out.println("Discounted Price of Shoes: " + newPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); } }
输出
HashMap: {Pant=150, Bag=300, Shoes=200} Discounted Price of Shoes: 180 Updated HashMap: {Pant=150, Bag=300, Shoes=180
在上面的例子中,我们创建了一个名为
prices 的哈希图。注意表达式,
prices.compute("Shoes", (key, value)-> value-value * 10/100)
这里,
(key, value)-> value-value * 10/100-这是一个 lambda 表达式。它将 Shoes 的旧值减少 10% 并返回它。要了解有关 lambda 表达式的更多信息,请访问 Java Lambda 表达式。
prices.compute()-将 lambda 表达式返回的新值与 Shoes 的映射相关联。
我们使用 lambda 表达式作为重映射函数,它包含两个参数。
注意: 根据Java官方文档,HashMap的merge()方法比compute()方法简单。