在 Java 中,有多种方式可以遍历 HashMap,下面为你详细介绍几种常见的遍历方法。
1,使用 keySet() 遍历键,再通过键获取值
- 创建一个 HashMap 对象,并向其中添加一些键值对。
- 使用 map.keySet() 方法获取 HashMap 中所有键的集合。
- 通过 for-each 循环遍历这个键的集合。
- 在循环体中,使用 map.get(key) 方法根据当前键获取对应的值,并将键和值打印输出。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
packagecom.maoge;
importjava.util.HashMap;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 遍历键集合 for(String key : map.keySet()) { // 根据键获取值 String value = map.get(key); System.out.println(\”Key: \”+ key +\”, Value: \”+ value); } } } |
2,使用 entrySet() 遍历键值对
- 先创建一个 HashMap 对象并添加键值对。
- 使用 map.entrySet() 方法获取包含所有键值对的集合。
- 通过 for-each 循环遍历这个集合,每次循环得到一个 Map.Entry 对象。
- 在循环体中,使用 entry.getKey() 方法获取键,使用 entry.getValue() 方法获取值,并将它们打印输出。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
packagecom.maoge;
importjava.util.HashMap; importjava.util.Map;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 遍历键值对集合 for(Map.Entry<String, String> entry : map.entrySet()) { // 获取键 String key = entry.getKey(); // 获取值 String value = entry.getValue(); System.out.println(\”Key: \”+ key +\”, Value: \”+ value); } } } |
3,使用 forEach() 方法(Java 8 及以上)
- 创建 HashMap 并添加元素。
-
调用 map.forEach() 方法,传入一个 Lambda 表达式。Lambda 表达式的参数 key 和 value
分别代表当前遍历到的键和值。 - 在 Lambda 表达式的方法体中,将键和值打印输出。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
packagecom.maoge;
importjava.util.HashMap; importjava.util.Map;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 使用 forEach 方法遍历 map.forEach((key, value) -> { System.out.println(\”Key: \”+ key +\”, Value: \”+ value); }); } } |
4,使用迭代器(Iterator)遍历
- 创建 HashMap 并添加元素。
- 使用 map.entrySet().iterator() 方法获取键值对集合的迭代器。
- 使用 while 循环结合 iterator.hasNext() 方法判断是否还有下一个元素。
- 在循环体中,使用 iterator.next() 方法获取下一个 Map.Entry 对象,然后获取键和值并打印输出。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
packagecom.maoge;
importjava.util.HashMap; importjava.util.Iterator; importjava.util.Map;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 获取键值对集合的迭代器 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(); System.out.println(\”Key: \”+ key +\”, Value: \”+ value); } } } |
5,遍历所有键
注意只是遍历键值,即key值,代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
packagecom.maoge;
importjava.util.HashMap; importjava.util.Map;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 遍历所有键 for(String key : map.keySet()) { System.out.println(\”key : \”+ key); } } } |
6,遍历所有值
注意只是遍历键值对的值,即value,代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
packagecom.maoge;
importjava.util.HashMap; importjava.util.Map;
publicclassTest03 { publicstaticvoidmain(String[] args) {
// 创建一个 HashMap 并添加元素 Map<String, String> map =newHashMap<>(); map.put(\”张飞\”,\”男\”); map.put(\”孙尚香\”,\”女\”); map.put(\”关羽\”,\”男\”); map.put(\”貂蝉\”,\”女\”);
// 遍历所有键 for(String key : map.values()) { System.out.println(\”value: \”+ key); } } } |
来源:https://www.jb51.net/program/341085758.htm
