在Java中,Map是一种非常常用的数据结构,它存储了键值对,我们经常需要遍历Map来获取其中的数据,本文将介绍Java中Map循环遍历的五种方法实现。
1、使用entrySet()方法遍历
entrySet()方法是Java 8引入的新特性,它可以帮助我们以Set的形式获取Map中的键值对,我们可以使用for-each循环遍历这个Set,然后通过getKey()和getValue()方法获取键和值。
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("one", 1); map.put("two", 2); map.put("three", 3); for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } }
2、使用keySet()方法遍历
keySet()方法可以返回一个包含Map中所有键的Set,我们可以使用for-each循环遍历这个Set,然后通过get()方法获取对应的值,需要注意的是,如果使用get()方法获取值时,如果指定的键不存在,会抛出IllegalArgumentException异常,我们需要先判断键是否存在。
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("one", 1); map.put("two", 2); map.put("three", 3); for (String key : map.keySet()) { if (map.containsKey(key)) { System.out.println("Key: " + key + ", Value: " + map.get(key)); } else { System.out.println("Key not found: " + key); } } } }
3、使用values()方法遍历
values()方法可以返回一个包含Map中所有值的Collection,我们可以使用for-each循环遍历这个Collection,但是无法获取到对应的键,这种方法只适用于不需要知道键的情况。
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("one", 1); map.put("two", 2); map.put("three", 3); for (Integer value : map.values()) { System.out.println("Value: " + value); } } }
4、使用Java 8的forEach()方法遍历
Java 8引入了一种新的遍历方式,即forEach()方法,它可以让我们更方便地遍历Map中的键值对,我们只需要提供一个lambda表达式,就可以实现对键值对的操作,需要注意的是,forEach()方法不会修改原始的Map,如果需要修改,可以使用其他方法。
import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("one", 1); map.put("two", 2); map.put("three", 3); // 使用forEach()方法遍历并打印键值对(不修改原始Map) map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value)); } }
5、使用Java 8的toStream()方法遍历并转换结果集(不修改原始Map)
```java
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/231186.html