欢迎访问宙启技术站
智能推送

JAVA如何遍历Map集合

发布时间:2023-05-16 05:28:21

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之后新增的,它可以使代码更加简洁易懂。