遍历HashMap的几种方式总结

1.使用Iterator遍历HashMap

HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

// 遍历HashMap
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    String key = entry.getKey();
    String value = entry.getValue();
    // 打印key和value
    System.out.println(key + " : " + value);
}

2.使用forEach遍历HashMap

HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

// 遍历HashMap
map.forEach((key, value) -> {
    // 打印key和value
    System.out.println(key + " : " + value);
});


3.使用for-each循环遍历HashMap的keySet或values

HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

// 遍历HashMap的keySet
for (String key : map.keySet()) {
    String value = map.get(key);
    // 打印key和value
    System.out.println(key + " : " + value);
}

// 遍历HashMap的values
for (String value : map.values()) {
    // 打印value
    System.out.println(value);
}

4.使用Stream API遍历HashMap

HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

// 遍历HashMap
map.entrySet().stream().forEach(entry -> {
    String key = entry.getKey();
    String value = entry.getValue();
    // 打印key和value
    System.out.println(key + " : " + value);
});

5.使用键-值对数组遍历HashMap

HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

// 获取键-值对数组
Object[] entries = map.entrySet().toArray();
for (Object entry : entries) {
    Map.Entry<String, String> e = (Map.Entry<String, String>) entry;
    String key = e.getKey();
    String value = e.getValue();
    // 打印key和value
    System.out.println(key + " : " + value);
}

在Java开发中,使用迭代器(Iterator)遍历HashMap的方式是最常见的。因为迭代器不需要将整个HashMap加载到内存中,它只会在需要时才加载下一个元素,因此可以避免内存溢出的问题。此外,迭代器提供了一些方便的方法,例如remove()方法可以删除当前迭代的元素。

除此之外,使用for-each循环遍历HashMap的keySet或values也是一个常见的方式。这种方式的优点是简单易懂,代码量少,适用于只需要访问键或值的场景。

其他的方式虽然也可以使用,但是在实际开发中相对较少使用。

你可能感兴趣的:(Java,java,jvm,html)