关于Java Map 的几个常见数据处理方法

前面做了关于Map的学习,在JDK1.8之后,增加了关于Map几个实用的方法;
1.putIfAbsent
我们在使用map的put时可以向集合中增加数据,如果Key已经存在值则替换,而putIfAbsent 这个方法添加时如果Key存在值则不替换。

Map<Integer,String> map=new HashMap<>();
map.put(1,"aaa");
map.put(2,"bbb");
map.put(3,"fffs");
map.putIfAbsent(3,"ssss");

map.forEach((k,v)->{
    
    
    System.out.println(v);
});

效果

aaa
bbb
fffs

2.getOrDefault
相关于数据库中的ISNULL(K,DEFAULT) 的方法,当我们根据key读取map时,而Key不存在,则返回一个默认值,如果存在则返回存在值。

Map<Integer,String> map=new HashMap<>();
        map.put(1,"aaa");
        map.put(2,"bbb");
        map.put(3,"fffs");

        String va=map.getOrDefault(4,"null");
        System.out.println(va);

运行结果

null

3.remove
如果根据key进行删除时直接只传key参数,如果把key与value一起传的话,当value与对应的值不同时则不删除

Map<Integer,String> map=new HashMap<>();
        map.put(1,"aaa");
        map.put(2,"bbb");
        map.put(3,"fffs");

        map.remove(1,"3333");//故意不同
        map.forEach((k,v)->{
    
    
            System.out.println(v);
        });

运行结果

aaa
bbb
fffs

4.replace
如果把key + 新的value +旧的value 一起传的话,当旧value与对应的值不同时则不替换

Map<Integer,String> map=new HashMap<>();
        map.put(1,"aaa");
        map.put(2,"bbb");
        map.put(3,"fffs");

        map.replace(1,"test","sss");;//故意不同
        map.forEach((k,v)->{
    
    
            System.out.println(v);
        });

效果

aaa
bbb
fffs

5.computeIfAbsent
当传入的比较值不存在时,处理新部分,当存在时会把新部分与旧部分发生关系。

Map<Integer,String> map=new HashMap<>();
        map.put(1,"aaa");
        map.put(2,"bbb");
        map.put(3,"fffs");

        map.computeIfAbsent(5,(va)->va+"xxxxxxx");//传入不存在值
        map.forEach((k,v)->{
    
    
            System.out.println(v);
        });

效果

aaa
bbb
fffs
5xxxxxxx

6.merge
合并,当存在时与旧部分进行合并,当不存在时则以新值存储。

Map<Integer,String> map=new HashMap<>();
        map.put(1,"aaa");
        map.put(2,"bbb");
        map.put(3,"fffs");

        map.merge(6,"9999",(vs1,vs2)->vs1+vs2);//传入不存在值
        map.forEach((k,v)->{
    
    
            System.out.println(v);
        });

效果

aaa
bbb
fffs
9999

仅收集这些,你觉得还有那些实用的欢迎留言评论。

猜你喜欢

转载自blog.csdn.net/weixin_44690195/article/details/106587799