美文网首页
Java遍历Map对象的4种方法

Java遍历Map对象的4种方法

作者: Dapengyou | 来源:发表于2023-01-31 15:46 被阅读0次

1. 在 for-each 循环中使用 entries 来遍历(最常见)

 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
            if (!map.isEmpty()) {
                for (Map.Entry<Integer, Integer> entry : map.entrySet()) {

                    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

                }
            }

在一套循环中,拿到 key 和 value

2. 在 for-each 循环中遍历 keys 或 values(常用)

 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        if (!map.isEmpty()) {
            //遍历map中的键
            for (Integer key : map.keySet()) {
                System.out.println("Key = " + key);
            }
            //遍历map中的值
            for (Integer value : map.values()) {
                System.out.println("Value = " + value);
            }
        }

这个是我常用的遍历方式,比 entrySet 速度更快,代码比 Iterator 更简洁

3. 使用 Iterator 遍历 (可以删除值)

 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        if (!map.isEmpty()) {
            Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
            while (entries.hasNext()) {
                Map.Entry<Integer, Integer> entry = entries.next();
                System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
            }
        }

这个方法虽然看起来比较冗余,但是可以做到在遍历的同时,调用 iterator.remove() 来删除 entries,可以用于移除 Map 中某个值

4. 通过键找值遍历(不咋使用,效率低)

  Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        if (!map.isEmpty()) {
            for (Integer key : map.keySet()) {
                Integer value = map.get(key);
                System.out.println("Key = " + key + ", Value = " + value);
            }
        }

以上方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable等)

HashMap 存入的数值与遍历出的数值顺序会不同,所以如果要保证顺序,要使用LinkedHashMap

相关文章

网友评论

      本文标题:Java遍历Map对象的4种方法

      本文链接:https://www.haomeiwen.com/subject/isxbhdtx.html