📜  Java中的HashMap merge(key, value, BiFunction)方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:29.082000             🧑  作者: Mango

Java中的HashMap merge(key, value, BiFunction)方法及示例

在Java的HashMap中,merge(key, value, BiFunction)方法可以用于将给定的key和value与已有的key-value进行合并。如果给定的key已经存在于HashMap中,则将其对应的值与给定的value合并,如果key不存在,则直接添加该key-value对。

以下是merge(key, value, BiFunction)方法的签名:

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

其中,key是要合并的键,value是要合并的值,remappingFunction是一个BiFunction接口,用于指定如何将给定的值合并到原有的值中。该接口的函数原型为:V apply(V oldValue, V newValue)。

如果remappingFunction返回null,则表示要删除该key-value对;否则就将返回的值与key关联的旧值进行合并。

下面是一个示例,展示如何使用merge(key, value, BiFunction)方法:

import java.util.HashMap;
import java.util.Map;

public class HashMapMergeExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 1);

        // 合并现有的key-value对
        map.merge("apple", 2, Integer::sum);
        System.out.println(map); // 输出:{apple=3}

        // 添加新的key-value对
        map.merge("orange", 3, Integer::sum);
        System.out.println(map); // 输出:{orange=3, apple=3}

        // 删除key-value对
        map.merge("orange", 0, Integer::sum);
        System.out.println(map); // 输出:{apple=3}
    }
}

以上代码展示了如何在HashMap中使用merge(key, value, BiFunction)方法,在原有的key-value对中合并新的值或添加新的key-value对或删除key-value对。在示例中,我们通过给定一个BiFunction接口来指定如何将新值合并到旧值中。通过运行示例,可以看到在合并过程中创建了一个新的值,并将其保存到了HashMap中。