HashMap的⼏种遍历⽅式
时间: 2023-05-19 13:06:46 浏览: 66
HashMap有三种遍历方式:通过键遍历、通过值遍历和通过键值对遍历。其中,通过键遍历可以使用keySet()方法获取键的集合,然后使用for-each循环或迭代器遍历;通过值遍历可以使用values()方法获取值的集合,然后使用for-each循环或迭代器遍历;通过键值对遍历可以使用entrySet()方法获取键值对的集合,然后使用for-each循环或迭代器遍历。
相关问题
⼿写⼀下HashMap的⼏种遍历⽅式 - Entry 遍历 - keySet 遍历 - foreach遍历 - keySet foreach遍历
HashMap的几种遍历方式如下:
1. Entry遍历:使用entrySet()方法可以同时遍历Map里面的Key和Value。可以通过迭代器或者foreach循环来实现。例如:
```java
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 使用entrySet()方法遍历
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
// 处理key和value
}
```
2. keySet遍历:使用keySet()方法可以遍历Map里面的Key。可以通过迭代器或者foreach循环来实现。例如:
```java
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 使用keySet()方法遍历
for (String key : map.keySet()) {
Integer value = map.get(key);
// 处理key和value
}
```
3. foreach遍历:在JDK8及以上版本中,可以直接使用foreach循环来遍历HashMap的键值对。例如:
```java
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 使用foreach遍历
map.forEach((key, value) -> {
// 处理key和value
});
```
4. keySet foreach遍历:在JDK8及以上版本中,可以使用keySet()方法获取键的集合,然后使用foreach循环遍历。例如:
```java
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 使用keySet foreach遍历
for (String key : map.keySet()) {
Integer value = map.get(key);
// 处理key和value
}
```
以上是HashMap的几种常见遍历方式。根据具体的需求,可以选择适合的遍历方式来操作HashMap的键值对。
#### 引用[.reference_title]
- *1* *3* [Java - 关于HashMap通过keySet遍历kv的二次调用问题](https://blog.csdn.net/Zong_0915/article/details/120905738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [HashMap的七种遍历方式](https://blog.csdn.net/maojian_ohhey/article/details/115431835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
HashMap的几种遍历方式案列
假设有一个HashMap<Integer, String> map,以下是几种遍历方式的示例代码:
1. 使用for-each循环遍历key
```
for(Integer key : map.keySet()) {
System.out.println("Key: " + key);
}
```
2. 使用for-each循环遍历value
```
for(String value : map.values()) {
System.out.println("Value: " + value);
}
```
3. 使用for-each循环遍历entry
```
for(Map.Entry<Integer, String> entry : map.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
```
4. 使用Iterator遍历key
```
Iterator<Integer> iterator = map.keySet().iterator();
while(iterator.hasNext()) {
Integer key = iterator.next();
System.out.println("Key: " + key);
}
```
5. 使用Iterator遍历value
```
Iterator<String> iterator = map.values().iterator();
while(iterator.hasNext()) {
String value = iterator.next();
System.out.println("Value: " + value);
}
```
6. 使用Iterator遍历entry
```
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
```