LinkedHashMap遍历
时间: 2023-10-26 07:24:19 浏览: 470
LinkedHashMap是Java中的一个类,它继承自HashMap,可以保持插入顺序或访问顺序。遍历LinkedHashMap可以通过以下几种方式实现:
1. 使用迭代器遍历:
```java
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
// 对每个键值对执行操作
System.out.println(key + ": " + value);
}
```
2. 使用for-each循环遍历:
```java
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
// 对每个键值对执行操作
System.out.println(key + ": " + value);
}
```
3. 使用Lambda表达式遍历(Java 8及以上版本):
```java
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.forEach((key, value) -> {
// 对每个键值对执行操作
System.out.println(key + ": " + value);
});
```
问题产生的原因:
LinkedHashMap是用链表和哈希表实现的,它通过维护一个双向链表来保持插入顺序或访问顺序。在遍历LinkedHashMap时,可以按照插入顺序或访问顺序来获取键值对。
相关问题:
1. LinkedHashMap相比于HashMap有什么优势?
2. LinkedHashMap如何实现保持插入顺序或访问顺序?
3. 在遍历LinkedHashMap时,能否修改其中的键或值?
阅读全文