阅读量:5
HashMap的遍历方法有以下几种:
- 使用Iterator遍历:通过HashMap的keySet()或entrySet()方法获取键集合或键值对集合,然后使用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(); // 进行其他操作 }
- 使用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(); // 进行其他操作 }
- 使用Java 8的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(); // 进行其他操作 });
注意:在遍历过程中,使用Iterator或foreach进行删除操作时需要使用Iterator的remove()方法,否则会抛出ConcurrentModificationException异常。