HashMap的遍历方法!

117 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情 
HashMap是一种十分常用的数据结构对象,可以保存键值对,在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。本教程将为你展示Java中HashMap的几种典型方式。 HashMap遍历

  1. 使用迭代器(Iterator)EntrySet 的方式进行遍历;
  2. 使用迭代器(Iterator)KeySet 的方式进行遍历;
  3. 使用 For Each EntrySet 的方式进行遍历;
  4. 使用 For Each KeySet 的方式进行遍历;

1.Iterator迭代器 EntrySet

第一种方式是采用 for 和 Map.Entry 的形式来遍历,通过遍历 map.entrySet() 获取每个 entry 的 key 和 value 代码如下。这种方式一般使用的比较多的一种方式,没有什么花里胡哨的用法,可以很方便的获取 map 的 key 和 value

public class HashMapTest { 
public static void main(String[] args) 
{ // 创建并赋值 
HashMap Map<Integer, String> map = new HashMap(); 
map.put(1, "Java");
map.put(2, "JDK"); 
map.put(3, "Spring Framework"); 
map.put(4, "MyBatis framework"); 
map.put(5, "Mybatis-Plus"); 
// 遍历 Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator(); 
while (iterator.hasNext()) 
{ Map.Entry<Integer, String> entry = iterator.next(); 
System.out.println(entry.getKey()); 
System.out.println(entry.getValue());
} 
} 
}

2.使用Iterator迭代器keyset

使用keyset将map集合放进去,然后通过Iterator迭代器遍历处每一个keyvalue
代码如下:

public static void main(String[] args) {
    // 创建并赋值 HashMap
    Map<Integer, String> map = new HashMap();
    map.put(1, "Java");
    map.put(2, "JDK");
    map.put(3, "Spring Framework");
    map.put(4, "MyBatis framework");
    map.put(5, "Mybatis-Plus");
    // 遍历
    Iterator<Integer> iterator = map.keySet().iterator();
    while (iterator.hasNext()) {
        Integer key = iterator.next();
        System.out.println(key);
        System.out.println(map.get(key));
    }
}

3.使用ForEach EntrySet遍历

使用ForEach遍历HashMap,先将Map集合初始化,然后通过foreach循环遍历每一个key,然后根据每一个key遍历出每一个Value,代码如下:


public static void main(String[] args) {
    // 创建并赋值 HashMap
    Map<Integer, String> map = new HashMap();
    map.put(1, "Java");
    map.put(2, "JDK");
    map.put(3, "Spring Framework");
    map.put(4, "MyBatis framework");
    map.put(5, "Mybatis-Plus");
    // 遍历
    for (Map.Entry<Integer, String> entry : map.entrySet()) {
        System.out.println(entry.getKey());
        System.out.println(entry.getValue());
    }
}

4.使用ForEach keySet遍历

使用ForEach遍历HashMap,先将Map集合初始化,然后通过foreach循环遍历每一个key,然后根据每一个key遍历出每一个Value,代码如下:

public static void main(String[] args) {
    // 创建并赋值 HashMap
    Map<Integer, String> map = new HashMap();
    map.put(1, "Java");
    map.put(2, "JDK");
    map.put(3, "Spring Framework");
    map.put(4, "MyBatis framework");
    map.put(5, "Mybatis-Plus");
    // 遍历
    for (Integer key : map.keySet()) {
        System.out.println(key);
        System.out.println(map.get(key));
    }
}  

运行截图如下:

Snipaste_2022-11-24_17-59-56.jpg