栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Map接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Map接口

特点:

        1、Map集合是一个双列集合,一个元素包含两个值(Key,value)

        2、Map集合中的元素,key和value的数据类型可以相同,也可以不相同。

        3、Map集合中的元素,key是不允许重复的,但是value是允许重复的。

        4、Map集合中的元素key和value是一一对应的。

Map接口的常用实现类:HashMap(无序)

HashMap的一个子类:linkedHashMap(有序)

HashMap集合的特点:

        1、HashMap集合底层是哈希表,查询速度非常快。

        2、HashMap是一个无序的集合,存取元素的顺序可能不一致。

Map中常用方法的介绍:

        1、public V put(K key,V value):把指定的键与指定的值添加到Map集合中

                返回值V,当key重复时,会替换原本的value并返回。当key不重复时,会将新的value存入Map集合中。

        2、public V remove(Object key)

                把指定键所对应的值在Map集合中删除,返回被删除的值,如果key不存在则返回null

        3、public V get(Object key)

                根据键返回对应的值。

        4、boolean Containskey(Object key)

                判断集合中是否存在指定键,包含返回true,不包含返回false。

        5、boolean ContainsValue(Object value)

                判断集合中是否存在指定的值,包含返回true,不包含返回false。

Map集合第一种遍历方式:通过键找到值的方法。

Map集合中的方法:

        Set keySet() 返回此映射包含的key值的Set集合。

实现步骤:

        1、使用Map集合中的方法keySet(),把Map所有的key取出,存入到Set集合中。

        2、遍历Set集合,获取Map集合中的每一个key。

        3、通过Map集合中的方法get(key)找到value。

遍历方法2:

        Map.Entry:在Map接口中有一个内部接口Entry。

        作用:当Map集合已经创建,那么就会在map集合中创建一个Entry对象,用来记录键与值(键与值的映射关系)。

        Set> entrySet()把Map结合内部的多个Entry对象取出来存储到一个Set集合中。

        遍历Set集合,获取set集合中的每一个Entry对象。

        Entry对象中的方法 getKey()获取key值。

        Entry对象中的方法 getValue()获取value值

使用步骤:

        1、使用Map集合中的方法entrySet(),把Map集合中的多个Entry对象取出来,存储到一个Set集合中。

        2、遍历Set集合,获取每一个Entry对象。

        3、使用Entry对象的方法getKey(),getValue()获取键与值。

以上方法的代码案例:

    public static void main(String[] args) {

        Map m = new HashMap<>();
        m.put(1,"周杰伦");
        m.put(2,"周润发");
        m.put(3,"胡歌");
        m.put(4,"彭于晏");
        System.out.println(m.put(5, "林俊杰"));//null

        String another = m.put(5,"吴京");
        System.out.println(another);//林俊杰

        m.put(6,"蔡徐坤");
        System.out.println(m.remove(6));

        //根据键,取出值
        System.out.println(m.get(1));//周杰伦
        System.out.println(m.get(6));//null  6 已经被删除,不存在

        System.out.println(m.containsKey(2));//true
        System.out.println(m.containsValue("周润发"));//true

        //遍历map集合
        //1、通过键找值

        Set set = m.keySet();
        System.out.println(set);//[1, 2, 3, 4, 5] 返回的集合是键的集合
        //遍历set集合返回,并根据其中元素取出map集合中的值
        Iterator iterator = set.iterator();
        while(iterator.hasNext()){
            System.out.println(m.get(iterator.next()));//周杰伦 周润发 胡歌 彭于晏 吴京
        }

        //遍历方式2
        //增强for
        for (Object o : set) {
            System.out.println(m.get(o));周杰伦 周润发 胡歌 彭于晏 吴京
        }

        Set set1 = m.entrySet();
        System.out.println(set1);//[1=周杰伦, 2=周润发, 3=胡歌, 4=彭于晏, 5=吴京]

        Iterator iterator1 = set1.iterator();
        while(iterator1.hasNext()){
            Map.Entry me = (Map.Entry)iterator1.next();
            System.out.println("key:"+me.getKey()+"  value:"+me.getValue());
        }

        //用entrySet() 增强for
        Set set2 = m.entrySet();
        for (Map.Entry tt : m.entrySet()) {//Set set12 = m.entrySet();  写set是错误的
            System.out.println("key:"+tt.getKey()+"  value:"+tt.getValue());
        }

        System.out.println(m.values());



    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号