Java HashMap merge()方法

java.util.HashMap.merge(K key, V value, BiFunction remappingFunction) 如果指定的键尚未与值关联或与null关联,请将其与给定的非null值关联。

1 语法

public V merge(K key, V value,BiFunction remappingFunction)

2 参数

key:这是我们具有特定价值的密钥。如果两个键的值相同,则将它们合并。

value:是与存储在存储桶中的特定键相对应的索引。

BiFunction:具有两个参数的函数,用于根据旧值和给定值计算新映射。

3 返回值

如果该键不存在或与null关联,则此方法返回键及其值。否则,如果键已经具有任何值,它将使用映射技术将旧值与新值合并。

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * java.util.HashMap.merge(K key, V value, BiFunction remappingFunction) 方法的例子
 */
import java.util.*;

public class Demo {
    public static void main(String args[]) {

        // create a HashMap and add some values
        HashMap<Integer, String>
                map1 = new HashMap<>();
        map1.put(1, "L");
        map1.put(2, "M");
        map1.put(3, "N");

        HashMap<Integer, String>
                map2 = new HashMap<>();
        map2.put(1, "B");
        map2.put(2, "G");
        map2.put(3, "R");

        // print map details
        System.out.println("HashMap1: "
                + map1.toString());

        System.out.println("HashMap2: "
                + map2.toString());

        // provide value for new key which is absent
        // using computeIfAbsent method
        map2.forEach(
                (key, value)
                        -> map1.merge(
                        key,
                        value,
                        (v1, v2)
                                -> v1.equalsIgnoreCase(v2)
                                ? v1
                                : v1 + ", " + v2));

        // print new mapping
        System.out.println("New HashMap: " + map1);
    }
}

输出结果为:

HashMap1: {1=L, 2=M, 3=N}
HashMap2: {1=B, 2=G, 3=R}
New HashMap: {1=L, B, 2=M, G, 3=N, R}

热门文章

优秀文章