JDK8 MAP

JAVA8 MAP新增的API

1.foreach,使用foreach可以很方便的对map进行遍历:

Map<String, String> map = new HashMap<String, String>(){
            {
                put("1","e");
                put("2","e");
                put("3","e");
                put("4","e");
            }
        };
        map.forEach((k,v)-> System.out.println(k));

2.putIfAbsent,自动检查key是否为null

 Map<String, String> map = new HashMap<String, String>(){
            {
                put(null,"e"); //会存入
                putIfAbsent(null, "e"); //不会存入

            }
        };

3.computeIfPresent,内置计算

Map<String, String> map = new HashMap<String, String>(){
            {
                put("1", "e");
                put("2", "e");
                put("3", "e");
            }
        };
        map.computeIfPresent("2", (k, v) -> k.concat(v));
        System.out.println(map.get("2"));//2e
        map.computeIfPresent("2", (k, v) -> k.concat(v));
        System.out.println(map.get("2"));//22e

4.remove(key,val),当传两个参数时表示,只有当key和value都匹配时才删除

   Map<String, String> map = new HashMap<String, String>(){
            {
                put("1", "e");
                put("2", "e");
                put("3", "e");
            }
        };
        map.remove("2", "a");
        System.out.println(map.get("2")); // 依然存在,不会删除

5.getOrDefault(key,defalut)

 Map<String, String> map = new HashMap<String, String>(){
            {
                put("1", "e");
                put("2", "e");
                put("3", "e");
            }
        };
        map.remove("2", "e");
        System.out.println(map.get("2")); // 依然存在,不会删除
        System.out.println(map.getOrDefault("2","e"));//不存在获得默认值

6.merge,如果当前key不存在则存入Map,如果存在则合并之前的值

 Map<String, String> map = new HashMap<String, String>(){
            {
                put("1", "e");
                put("2", "e");
                put("3", "e");
            }
        };
        map.remove("2", "e");
        map.merge("2", "a",(value,newValue)->value.concat(newValue));
        System.out.println(map.get("2")); // a
        map.merge("2", "a",(value,newValue)->value.concat(newValue));
        System.out.println(map.get("2")); // aa

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值