• Map接口和常用方法


    Map接口实现类的特点

    • Map 用于保存具有映射关系的数据 key-value
    • Map中的key和value可以是任何引用类型的数据 会封装到HashMap$Node对象中
    • Map的key不允许重复
    • Map的value可以重复
    • Map的key可以为null value也可以为null key为null只能有一个 value为null可以多个
    • 常用String类作为May的key
    • key和value之间存在单项一对一关系 即通过指定的key总能找到对应的value

    Map接口遍历方法

    • 通过map.keySet获取到set 通过增强for和迭代器获取
    • 通过 map.values()获取value 并通过Collection 增强for 迭代器获取value
    • 通过 map.entrySet() 获取到set 通过增强for迭代器获取 其中需要Map.Entry m=(Map.Entry)entry向下转型
    {
        public static void main(String[] args) {
            Map map = new HashMap();
            map.put("邓超",new Book("三国",100));
            map.put("邓超","孙俪"); //替换
            map.put("王宝强","马蓉");
            map.put("宋哲","马蓉");
            map.put("刘林波",null);
            map.put(null,"刘亦菲");
            map.put("鹿晗","关晓彤");
    
            //第一组 先取出所有key 通过key 取出对应的value
            //1 增强for
            System.out.println("=====第一种=======");
            Set keyset = map.keySet();
            for (Object obj :keyset) {
                System.out.println(obj+"-"+map.get(obj));
            }
    
            System.out.println("====第二种======");
    
            //2迭代器
            Iterator iterator = keyset.iterator();
            while (iterator.hasNext()){
                Object next = iterator.next();
                System.out.println(next+"-"+map.get(next));
            }
    
            System.out.println("=======第二组 第3种========");
            //这里可以使用所有的collections使用的遍历方法
            //1 增强for 只能遍历所有的value
            Collection values = map.values();
            for (Object o :values) {
                System.out.println(o);
            }
    
            System.out.println("=====第4种=====");
    
            //迭代器 所有的value
            Iterator iterator1 = values.iterator();
            while (iterator1.hasNext()){
                Object next2 = iterator1.next();
                System.out.println(next2);
            }
    
            System.out.println("=====第三组 增强for");
            //第三组 EntrySet
            Set entrySet = map.entrySet();
            for (Object entry :entrySet) {
                //将entry转成Map.Entry
                Map.Entry m=(Map.Entry)entry;
                System.out.println(m.getKey()+"-"+m.getValue());
            }
    
            System.out.println("========第三组 迭代器");
            Iterator iterator2 = entrySet.iterator();
            while (iterator2.hasNext()){
                Object next = iterator2.next();
                System.out.println(next);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    HashMap小结

    • Map接口的常用实现类 HashMap Hashtable Properties
    • HashMap是Map接口使用评率最高的实现类
    • HashMap是以 key-value对方式来存储数据
    • key不能重复 但是值可以重复 允许使用null键和null值
    • 如果添加相同key 则会覆盖原来的key-value 等同于修改(key不会替换 val会替换)
    • 与HashSet一样 不保证映射的顺序 因为底层是以hash表的方式来存储的
    • HashMap没有实现同步 因此线程是不安全的
  • 相关阅读:
    官网安装Python包太慢?教你三种Pytorch的下载安装方式,保证你再也不用出现Error
    字节跳动基于ClickHouse优化实践之“多表关联查询”
    深度学习(PyTorch)——shape、view、reshape用法及其区别
    【Leetcode】1206. Design Skiplist
    springboot萌宠宠物网店的开发与设计毕业设计源码011042
    Idea常用插件及其作用
    JVM基础
    【精选】HTML5最全知识点集合
    2022~2023计算机毕业设计选题篇
    redis的常用基础类型及操作
  • 原文地址:https://blog.csdn.net/keith32/article/details/125469153