📜  Java中的 HashMap compute() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:47.625000             🧑  作者: Mango

Java中的HashMap compute()方法及示例

在Java编程中,HashMap是一个重要的数据结构。它提供了快速的键值对查找和插入等操作。HashMap中的compute()方法是一个用来更新哈希表中指定键的值的函数。在本文中,我们将详细讲解HashMap compute()方法及其示例。

HashMap compute()方法

HashMap compute()方法用于对哈希表中指定键的值进行更新。方法签名如下:

V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)

其中,key表示需要更新的键,remappingFunction则是一个函数式接口,用于指定键值的更新方式。这个函数式接口有三个参数:当前的键、当前的值和将要放入哈希表的值。它的返回值是计算完成的新值。

如果哈希表中还没有指定键的映射,compute()方法会将键值对插入到哈希表中,然后返回计算完成的新值。

如果remappingFunction返回null,则compute()方法会将指定键的值从哈希表中删除。

HashMap compute()示例

下面是一个使用HashMap compute()方法的示例:

import java.util.HashMap;

public class HashMapComputeExample {
    public static void main(String[] args) {
        // 创建一个HashMap
        HashMap<String, Integer> map = new HashMap<>();

        //将初始键值对插入HashMap
        map.put("a", 1);
        map.put("b", 2);
        
        //使用compute()方法更新指定键的值
        map.compute("a", (k, v) -> v + 10);
        
        //使用compute()方法插入新的键值对
        map.compute("c", (k, v) -> (v == null) ? 3 : v + 3);

        System.out.println(map);
    }
}

输出结果为:

{a=11, b=2, c=3}

在上面的示例中,我们首先创建了一个HashMap,并插入了初始键值对。接着,我们使用compute()方法对“a”这个键的值进行更新,使其自增10。最后,我们使用技巧插入了一个新的键值对,并将其值设置为3或者添加3。

可以看到,最终的HashMap中,键“a”的值被更新成了11,键“b”的值保持不变,键“c”被插入,并设置为3。