java--HashMap的方法汇总

public class test1 {
    public static void main(String[] args) {
        //定义
        HashMap<String, String> hashMap = new HashMap<>();

        //获取大小
        int size = hashMap.size();
        System.out.println("size:" + size);

        //判断是否为空
        boolean b = hashMap.isEmpty();
        System.out.println("hashMap是否为空:" + b);

        //插入 key-value格式
        hashMap.put("name", "Tom");

        //判断是否包含key
        boolean b1 = hashMap.containsKey("name");
        System.out.println("是否包含name的key:" + b1);

        //判断是否包含value值
        boolean b2 = hashMap.containsValue("Mary");
        System.out.println("是否包含值Mary:" + b2);

        //根据key获取值
        String value = hashMap.get("name");
        System.out.println("name的值:" + value);

        //根据key值删除
        hashMap.remove("name");
        System.out.println("删除后的hashMap:" + hashMap);

        //hashMap插入一个hashMap
        HashMap<String, String> hashMap1 = new HashMap<>();
        hashMap1.put("age", "18");
        hashMap1.put("name", "John");
        hashMap.putAll(hashMap1);
        System.out.println("插入后的hashMap:" + hashMap);

        //获取key的集合
        Set<String> set = new HashSet<>();
        set = hashMap.keySet();
        System.out.println("key的集合为:" + set);

        //获取value的集合
        Collection<String> values = hashMap.values();
        System.out.println("value的集合:" + values);

        //获取key-value的集合
        Set<Map.Entry<String, String>> entries = hashMap.entrySet();
        System.out.println("key-value的集合:" + entries);

        //比较两个hashMap是否相等
        boolean equals = hashMap.equals(hashMap1);
        System.out.println("hashMap是否等于hashMap1:" + equals);

        // getOrDefault:如果存在key,则返回对应的value,否则返回默认值
        String orDefault = hashMap.getOrDefault("name", "ZhangHua");
        System.out.println("返回name这个key对应的value:" + orDefault);
        String orDefault1 = hashMap.getOrDefault("class", "高三");
        System.out.println("返回class这个key对应的value:" + orDefault1);

        // forEach:遍历hashMap
        System.out.println("----遍历hashMap开始----");
        hashMap.forEach((k, v) -> {
            System.out.println(k + "-->" + v);
        });
        System.out.println("----遍历hashMap结束----");

        // replaceAll:参数时一个函数,特殊处理key-value值
        hashMap.replaceAll((k, v) -> {
            if (v != null) {
                v = v.toUpperCase();
            }
            return v;
        });
        System.out.println("使用replaceAll使所有的value转大写:" + hashMap);

        //putIfAbsent:如果不存在则插入,存在则不更新
        hashMap.putIfAbsent("sex", "男");
        hashMap.putIfAbsent("name", "Tom");
        System.out.println("使用putIfAbsent添加sex后的hashMap:" + hashMap);//原来没有sex
        System.out.println("使用putIfAbsent添加name后的hashMap:" + hashMap);//原来有name

        // replace: 参数为三个  key,旧value,新value
        hashMap.replace("age", "18", "20");
        System.out.println("1、更改age后的hashMap:" + hashMap);

        // replace: 参数为两个  key,新value
        hashMap.replace("age", "18");
        System.out.println("2、更改age后的hashMap:" + hashMap);

        // computeIfAbsent: 类似putIfAbsent,当key不存在时,或者key的值为null时,执行后面的函数
        hashMap.computeIfAbsent("card", k -> hashMap.put(k, "20201212"));
        System.out.println("使用computeIfAbsent的hashMap:" + hashMap);

        // computeIfPresent:与computeIfAbsent 相反,如果key存在时,重新映射函数,用于重新计算值
        hashMap.computeIfPresent("card", (k, v) -> v + "0001");
        System.out.println("使用computeIfPresent重新定义card后的hashMap:" + hashMap);

        // compute:如果存在key则重新定义对应的value;否则插入key,但是对应的value为null
       hashMap.compute("card", (k, v) -> v + "aaa");
        System.out.println("hashMap原来存在card,使用compute函数,再次计算:" + hashMap);
        hashMap.compute("grade", (k, v) ->{
            return "60";
        } );
        System.out.println("hashMap原来不存在grade,使用compute函数:" + hashMap);

        // merge:判断指定的 key 是否存在,如果不存在,则添加键值对到 hashMap 中。
        hashMap.merge("name", "Tom", (oldV, newV) -> newV);  //原来name的值为John,改为Tom
        System.out.println("使用merge重新定义name后的hashMap:" + hashMap);
        hashMap.merge("class", "高三", (oldV, newV) -> newV);//原来不存在class,则添加对应的键值对
        System.out.println("使用merge重新定义class后的hashMap:" + hashMap);

        // remove(key,value):必须key-value在hashmap中存在才能移除
        boolean card = hashMap.remove("card", "202012120001");
        System.out.println("1、移除card是否成功:" + card);
        boolean card1 = hashMap.remove("card", "202012120001aaa");
        System.out.println("2、移除card是否成功:" + card1);
    }
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值