HashMap的遍历方法

发布时间 2023-07-05 14:35:46作者: 看风景就
Map<String, String> myMap = new HashMap<>();
myMap.put("key1", "value1");
myMap.put("key2", "value2");

//for循环遍历
for(Map.Entry<String, String> entry : myMap.entrySet()){
  String key = entry.getKey();
  String value = entry.getValue();
    System.out.println(key + ": " + value);
}

// 遍历Map的键
for(String key : myMap.keySet()){
    System.out.println(key);
}
  
// 遍历Map的值
for(String value : myMap.values()){
    System.out.println(value);
}

//迭代器 Iterator 遍历
Iterator<Map.Entry<String, String>> iterator = myMap.entrySet().iterator();
while(iterator.hasNext()){
  Map.Entry<String, String> entry = iterator.next();
  String key = entry.getKey();
  String value = entry.getValue();
  System.out.println(key + ": " + value);
}


// 使用 Lambda 表达式的 forEach
// 遍历Map的键值对
myMap.forEach((key, value) -> {
    System.out.println(key + ": " + value);
});


// 使用 Stream API遍历
// 遍历Map的键值对
myMap.entrySet().stream()
  .forEach(entry -> {
    System.out.println(entry.getKey() + ": " + entry.getValue());
  });

// 遍历Map的键myMap.keySet().stream()
myMap.keySet().forEach(key -> {
    System.out.println(key);
  });

// 遍历Map的值myMap.values().stream()
myMap.values().forEach(value -> {
    System.out.println(value);
  });

在Java中,执行Map的删除操作时,不能使用for-each循环遍历并删除元素

可以使用 remove方法 或者 迭代器

或者使用remove方法指定key进行删除:

myMap.remove("key1");

使用迭代器删除Map中的某个元素:

Map<String, String> myMap = new HashMap<>();
myMap.put("key1", "value1");
myMap.put("key2", "value2");

Iterator<Map.Entry<String, String>> iterator = myMap.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    if (entry.getKey().equals("key1")) {
        iterator.remove();
    }
}

 

 


出处: 速记遍历Map的5种方法