Java Map的六大遍历方式

初始化一个Map,在Map里存储数据

        Map map = new HashMap();
        map.put("1","美女");
        map.put("2","帅哥");
        map.put("说唱","rapper");
        map.put("流行","歌手");
        map.put(null,"小刘");
        map.put("小张",null);
        map.put("小李","小红");

=================================================

第一种方式 增强 for 循环(取Map的key)

先取出map所有的key,通过key取出对应的value

        Set keyset = map.keySet();
        for (Object key : keyset) {
            System.out.println(key + "-" + map.get(key));
        }

输出结果

 ================================================

第二种方式 迭代器遍历 (取Map的key)

先取出map所有的key,通过key取出对应的value

取keyset的iterator

方法hasNext()判断iterator的下一个有没有存在数据

方法next()取iterator指向的下一个数据

        Set keyset = map.keySet();
        Iterator iterator = keyset.iterator();
        while(iterator.hasNext()){
            Object key = iterator.next();
            System.out.println(key + "-" + map.get(key));
        }

输出结果

=================================================

第三种方式 增强 for 循环(取Map的value)

先取出map所有的values

        Collection values = map.values();
        for(Object value : values){
            System.out.println(value);
        }

输出结果

=================================================

第四种方式 迭代器遍历 (取Map的value)

先取出map所有的values

        Collection values = map.values();
        Iterator iterator = values.iterator();
        while(iterator.hasNext()){
            Object value = iterator.next();
            System.out.println(value);
        }

 输出结果

 

=================================================

第五种方式 增强 for 循环(取Map的entry)

通过EntrySet来获取k-v

        Set entrySet = map.entrySet();
        for(Object entry : entrySet){
            Map.Entry m = (Map.Entry) entry;
            System.out.println(m.getKey() + "-" + m.getValue());
        }

 输出结果

=================================================

第六种方式 迭代器遍历 (取Map的entry)

刚取得entry时,对象类型为Object

需要向下转型,将对象类型转为 Map.Entry

        Set entrySet = map.entrySet();
        Iterator iterator = entrySet.iterator();
        while(iterator.hasNext()){
            Object entry = iterator.next();
            Map.Entry m= (Map.Entry) entry;
            System.out.println(m.getKey() + "-" + m.getValue());
        }

输出结果 

猜你喜欢

转载自blog.csdn.net/henry594xiaoli/article/details/127215421