Java HashMap类操作介绍

前言:

HashMap所代表的数据结构是使用键值对存储数据的一类数据结构,HashMap具备键唯一且可为空的特点,借助一个图来描述这个数据结构:

HashMap的主要方法:

1,构造方法:

小伙伴不要怯于阅读英文文档,多观察一会就会发现文档的排布是有非常强的规律性的,以上图为例,HashMap的构造方法主要有四个,每个方法后面都规定的需要添加的参数,并且每个构造方法的下面都带有方法的描述,此处讲最经常使用的构造方法即第一个,该构造方法不需要任何参数,方法描述中已经说明了这个构造方法默认设置了16位的初始容量并且负载因子为0.75。由于此处是操作简介,故不深入讲解初始容量和负载因子的设置,在使用时无需担心容量不足,但HashMap中的数据量达到扩容阈值时就会触发扩容机制,自主设置这两个值可以更好的匹配不同数据的结构和数据存储特点。

2,读写操作

put(K key, V value),get(K key)

这两个方法是HashMap的读写操作,写入时需要key,value,读操作是需要通过 key 来获取对应的value值。

 示例代码:

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("钥匙1","钥匙1对应的门1");
        hashMap.put("钥匙2","钥匙2对应的门2");
        hashMap.put("钥匙3","钥匙3对应的门3");
        System.out.println(hashMap.get("钥匙1"));
        System.out.println(hashMap.get("钥匙2"));
        System.out.println(hashMap.get("钥匙3"));
    }

运行结果:

 

3,移除键值对方法
3.1 移除所有键值对

clean()

该方法的作用是抹除表中的所用映射关系,示例代码:

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("钥匙1","钥匙1对应的门1");
        hashMap.put("钥匙2","钥匙2对应的门2");
        hashMap.put("钥匙3","钥匙3对应的门3");
        System.out.println("before clear(): "+hashMap.toString());
        hashMap.clear();
        System.out.println("after clear(): "+hashMap.toString());
    }

 

此处使用toString()方法可以查看HashMap中所有的映射关系。 

3.2  移除或修改单个映射

clear() 是对所有映射关系的清楚,那么有什么方法是移除单个键值对或者修改某个键的值的呢。

移除某个键值对:remove(K key);

修改某个键的值:replace(K key, V value);

示例代码:

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("钥匙1","钥匙1对应的门1");
        hashMap.put("钥匙2","钥匙2对应的门2");
        hashMap.put("钥匙3","钥匙3对应的门3");
        System.out.println(hashMap.toString());
        hashMap.remove("钥匙1");
        hashMap.replace("钥匙2","这个门被偷了");
        System.out.println(hashMap.toString());
    }

4,获取键/键值对合集
4.1 获取键合集

keySet()

4.2 获取键值对合集

entrySet();

示例代码:

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("钥匙1","钥匙1对应的门1");
        hashMap.put("钥匙2","钥匙2对应的门2");
        hashMap.put("钥匙3","钥匙3对应的门3");
        Set<String> set = hashMap.keySet();
        Set<Map.Entry<String, String>> set2 = hashMap.entrySet();
        System.out.println(set.toString());
        System.out.println(set2.toString());
    }

 

5,其他方法
5.1 containsKey(Object key)     检查是否包含键 key

5.2 containsValue(Object value)     检查是否包含值 value

5.3 isEmpty()     检查HashMap是否为空

5.4 size()     获取HashMap中键值对个数

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("钥匙1","钥匙1对应的门1");
        hashMap.put("钥匙2","钥匙2对应的门2");
        hashMap.put("钥匙3","钥匙3对应的门3");
        System.out.println("5.1 --+--+--+--+--+--");
        System.out.println("是否包含键\"钥匙1\":"+hashMap.containsKey("钥匙1"));
        System.out.println("是否包含键”钥匙4“:"+hashMap.containsKey("钥匙4"));
        System.out.println("5.2 --+--+--+--+--+--");
        System.out.println("是否包含键\"钥匙1对应的门1\":"+hashMap.containsValue("钥匙1对应的门1"));
        System.out.println("是否包含键\"钥匙4对应的门4\":"+hashMap.containsValue("钥匙4对应的门4"));
        System.out.println("5.3 --+--+--+--+--+--");
        System.out.println("hashMap中是否无键值对"+hashMap.isEmpty());
        System.out.println("5.4 --+--+--+--+--+--");
        System.out.println("hashMap中键值对的个数为: "+hashMap.size());
    }

 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值