HashMap遍历


HashMap介绍

1. HashMap无序且不安全的数据结构,是以key-value对的形式存储的,key值是唯一的(可以为null)一个key只能对应一个value,但Value是可以重复的;
2. ConcurrentHashMap 线程安全,不支持 key 或者 value 为 null3. LinkedHashMap 遍历按照插入顺序。

HashMap遍历

    Map map = new HashMap<>(3);
        map.put("a","a是第一个字母");
        map.put("","允许有一个key为null");//注:""空字符串不是null,ConcurrentHashMap的key或者value不支持null
        map.put("b","b是第二个字母");
        //遍历方法1: 先遍历key , 再取出value
        System.out.println("method 1 start");
        for (String key : map.keySet()) {
            System.out.println("key is " + key);
            System.out.println("value is " + map.get(key));
        }
        //遍历方法2: 直接遍历value
        System.out.println("method 2 start");
        for (String value : map.values()) {
            System.out.println("value is " + value);
        }
        //遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!
        System.out.println("method 3 start");
        for (Map.Entry entry : map.entrySet()) {
            System.out.println("key is " + entry.getKey());
            System.out.println("value is " + entry.getValue());
        }
        //遍历方法4: 通过forEach方法直接遍历key和value
        System.out.println("method 4 start");
        map.forEach((key, value) -> {
            System.out.println("key is " + key);
            System.out.println("value is " + value);
        });
//        method 1 start------------------------ -
//        key is
//        value is 允许有一个key为null
//        key is a
//        value is a是第一个字母
//        key is b
//        value is b是第二个字母
//        method 2 start------------------------ -
//        value is 允许有一个key为null
//        value is a是第一个字母
//        value is b是第二个字母
//        method 3 start------------------------ -
//        key is
//        value is 允许有一个key为null
//        key is a
//        value is a是第一个字母
//        key is b
//        value is b是第二个字母
//        method 4 start------------------------ -
//        key is
//        value is 允许有一个key为null
//        key is a
//        value is a是第一个字母
//        key is b
//        value is b是第二个字母