What are the different ways to traverse a hashmap?

There are several ways to iterate through a HashMap.

  1. Iterating using Iterator: by using the keySet() or entrySet() methods of a HashMap to obtain a set of keys or a set of key-value pairs, and then iterating through them using an Iterator.
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对到map

// 遍历键集合
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
    String key = iterator.next();
    // 根据key获取对应的值
    Integer value = map.get(key);
    // 进行其他操作
}

// 遍历键值对集合
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, Integer> entry = iterator.next();
    String key = entry.getKey();
    Integer value = entry.getValue();
    // 进行其他操作
}
  1. Iterate through a key set or key-value pair set using foreach:
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对到map

// 遍历键集合
for (String key : map.keySet()) {
    // 根据key获取对应的值
    Integer value = map.get(key);
    // 进行其他操作
}

// 遍历键值对集合
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    // 进行其他操作
}
  1. Traverse using Java 8’s Stream API:
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对到map

// 遍历键集合
map.keySet().stream().forEach(key -> {
    // 根据key获取对应的值
    Integer value = map.get(key);
    // 进行其他操作
});

// 遍历键值对集合
map.entrySet().stream().forEach(entry -> {
    String key = entry.getKey();
    Integer value = entry.getValue();
    // 进行其他操作
});

Note: When deleting elements during traversal using Iterator or foreach, make sure to use the remove() method of the Iterator to avoid throwing a ConcurrentModificationException.

bannerAds