Java Collection之Map接口概述及常用方法示例

一.Map实现类的结构

  • Map为双列数据,存储key-value对(即键值对)的数据,类似于高中学习的函数: y = f(x)

    • HashMap: 作为Map的主要实现类

      线程不安全,效率高,可以存储null的key和value

      • LinkedHashMap:

             保证在遍历map元素时,可以按照添加的顺序实现遍历

      原因: 在原有的HashMap底层结构的基础上,又添加了一对指针,指向前一个元素和后一个元素,因此可以实现按照添加的顺序遍历

      对于频繁的便利操作,LinkedHashMap的执行效率高于HashMap

    • TreeMap:

           保证按照添加的key-value对进行排序,实现排序遍历.此时需要考虑key的自然排序或定制排序

          底层采用红黑树的存储结构

    • Hashtable:

      作为古老的实现类,线程安全,执行效率低,不能存储null的key-value

      • Properties:

            常用来处理配置文件,key和value都为String类型

二.Map结构的理解

Map中存储的key-value的特点:

  • key:

       无序,不可重复,,使用set存储所有的key

       key所在的类要重写equals()和hashCode()方法

  • value:

    无序,可重复的,使用Collection存储所有的value

    value所在的类要重写equals()方法

  • 一个键值对:

       key-value构成了一个Entry对象

  • Map中的entry:

       无序,不可重复的,使用set存储所有的entry

  • 一个key对应一个value

三.Map接口中的常用方法

1.添加,删除,修改操作:

  • Object put(Object key,Object value):

        //将指定key-value 添加到(或修改)当前map对象中

  • putAll(Map m):

       //将m中的所有key-value对存放到当前map中

  • remove(key):

       //移除指定key的key-value对,并返回value

  • clear():

       //清空当前map中的所有数据,与map=null操作不同

HashMap<String,Integer> map = new HashMap<String, Integer>();
               map.put("a",10);   //使用put方法添加元素
               map.put("f",5);
               map.put("s",24);
               map.put("b",10);
               map.put("b",14);
​
               map.remove("s");    //使用remove方法调用元素
​
        System.out.println(map);

2.元素查询操作:

  • get(key):

       //获取指定key对应的value

  • boolean containsKey(key):

       //是否包含指定的key

  • boolean containsValue(value):

       //是否包含指定的value

  • int size():

       //返回map中的key-value对的个数

  • boolean isEmpty():

       //判断当前map是否为空

  • boolean equals(obj):

       //判断当前map和参数obj是否相等

 System.out.println(map.get("s"));  //获取"s"位置上的元素
        System.out.println(map.containsKey("z"));  //判断是否包含key"z"
        System.out.println(map.containsValue("11"));  //判断是否包含value"11"
        int a = map.size();   //获取长度
        System.out.println(a);

3.元视图操作的方法:

  • Set keySet():

      //返回所有key构成的Set集合

  • Collection values():

      //返回所有value构成的Collection集合

  • Set entrySet():

      //返回所有key-value对构成的Set集合

HashMap<String,Integer> map = new HashMap<String, Integer>();
               map.put("a",10);
               map.put("f",5);
               map.put("s",24);
               map.put("b",10);
               map.put("b",14);
​
         //使用keySet()方法遍历key
        Set<String> skey = map.keySet();
        System.out.println(skey);
        
        //使用values()方法遍历value
        Collection cvalue = map.values();
        System.out.println(cvalue);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值