JAVA如何遍历Map集合
Java中的Map是一种数据结构,用于存储键值对。在实际的开发应用中,Map是非常常用的集合类型。有时我们需要遍历Map,对于Map中的所有键值对进行处理或者输出。那么Java中如何遍历Map集合呢?
在Java中,遍历Map集合主要有三种方式:使用Iterator遍历、使用forEach循环遍历和使用Lambda表达式遍历。
一、使用Iterator遍历Map集合
Iterator是Java中常用的遍历集合的方式。遍历Map集合也可以使用Iterator进行遍历。
遍历Map集合的步骤如下:
1. 获取Map集合的键值对组成的Set集合
Java中将Map集合中的键值对抽象成了一个类,即Map.Entry<K, V>。Map.Entry中包含两个属性,getKey()用于获取键,getValue()用于获取值。Set<Map.Entry<K, V>> entrySet()方法用于获取键值对组成的Set集合。
2. 遍历Set集合,获取每一个键值对
获取到Set集合后,就可以使用Iterator对Set集合进行遍历,获取每一个键值对。其中Iterator中next()方法用于返回下一个元素,hasNext()方法用于判断是否还有下一个元素。
3. 处理每个键值对
对于每个键值对,可以使用getKey()方法获取键,使用getValue()方法获取值,然后进行相应的处理。
下面是一个使用Iterator遍历Map集合的例子:
Map<String, Integer> map = new HashMap<>();
map.put("Java", 100);
map.put("JavaScript", 80);
map.put("Python", 90);
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
Iterator<Map.Entry<String, Integer>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println(entry.getKey() + " " + entry.getValue());
}
运行结果如下:
Java 100 JavaScript 80 Python 90
二、使用forEach循环遍历Map集合
除了使用Iterator遍历Map集合,还可以使用forEach循环遍历Map集合。在Java 8中,Map新增了forEach方法,可以方便地遍历Map集合。
forEach方法需要传入一个实现了BiConsumer接口的Lambda表达式,BiConsumer接口是Java 8中的函数式接口,接收两个参数,对参数进行处理。
使用forEach循环遍历Map集合的步骤如下:
1. 使用Map.forEach()方法遍历Map集合
Map.forEach()方法需要传入一个实现了BiConsumer接口的Lambda表达式。
2. 通过Lambda表达式处理每个键值对
在Lambda表达式中,可以使用getKey()方法获取键,使用getValue()方法获取值,然后进行相应的处理。
下面是一个使用forEach循环遍历Map集合的例子:
Map<String, Integer> map = new HashMap<>();
map.put("Java", 100);
map.put("JavaScript", 80);
map.put("Python", 90);
map.forEach((key, value) -> System.out.println(key + " " + value));
运行结果如下:
Java 100 JavaScript 80 Python 90
三、使用Lambda表达式遍历Map集合
除了使用forEach循环遍历Map集合,还可以使用Lambda表达式遍历Map集合。在Java 8中,通过Map.entrySet().stream()可以将Map转换为一个Stream。然后使用Stream中的forEach方法进行遍历。
使用Lambda表达式遍历Map集合的步骤如下:
1. 使用Map.entrySet().stream()方法将Map转换为Stream
Map.entrySet().stream()方法将Map中的键值对转换为一个流,只需要对这个流进行遍历即可。
2. 通过Lambda表达式处理每个键值对
在Lambda表达式中,可以使用getKey()方法获取键,使用getValue()方法获取值,然后进行相应的处理。
下面是一个使用Lambda表达式遍历Map集合的例子:
Map<String, Integer> map = new HashMap<>();
map.put("Java", 100);
map.put("JavaScript", 80);
map.put("Python", 90);
map.entrySet().stream().forEach(entry -> System.out.println(entry.getKey() + " " + entry.getValue()));
运行结果如下:
Java 100 JavaScript 80 Python 90
总结:
Java中遍历Map集合的方式有三种:使用Iterator遍历、使用forEach循环遍历和使用Lambda表达式遍历。不同的方式可以根据实际需求进行选择。其中,使用Lambda表达式遍历Map集合是在Java 8之后新增的,它可以使代码更加简洁易懂。
