Uso del método merge() de Map en Java 8

Compartiendo el uso del método merge() de Map en Java 8

1. Escena 1:

map.merge(clave,valor,(v1,v2) -> v1-v2);

El método de fusión se puede entender de esta manera. Como la fórmula anterior,

1. Si la clave no existe, es igual a map.put(clave, valor), y el procesamiento posterior no es válido y no se ejecutará.

2. Si la clave existe, el valor se convertirá en su valor procesado.

Es decir: el valor en el mapa final = v1-v2, donde v2 representa el valor 

¡Una escena un poco complicada, todos pueden entenderla por un tiempo!

     orderMap.forEach((key,OrderNumVo)->{
            orderNumVoMap.merge(key,OrderNumVo,(allData,unpass)->
            {
               allData.setNum(allData.getNum()-unpass.getNum());
               return allData;
            });
        });

2. Consulte para escribir un método principal de prueba

    public static void main(String[] args) {
        Map<String, Integer> map1 = new HashMap<>();
        map1.put("a",1);
        map1.put("b",2);
        map1.put("c",3);
        System.out.println(map1);
        //key不存在等于是map1.put(key, value),后面的处理失效。
        map1.merge("d",4,(v1,v2)->v2+100);
        //如果存在就会变成你处理后的value值
        map1.merge("a",100,(v1,v2)->v1+v2);
        System.out.println(map1);
        map1.merge("c",3,Integer::sum);
        map1.merge("a",4,(v1,v2)->null);
        System.out.println(map1);
    }

Se puede ver que cuando la clave es "d", no importa lo que haga después, solo se le pondrá el valor.

Cuando la clave es "a", ingrese el valor después del procesamiento.

Si el valor que procesa es nulo, la clave se eliminará a la fuerza.

Supongo que te gusta

Origin blog.csdn.net/nandao158/article/details/130389763
Recomendado
Clasificación