LinkedHashMap 遍历
时间: 2024-08-28 21:03:47 浏览: 32
LinkedHashMap 是 Java 中的一种关联容器,它实现了 Map 接口,并结合了 HashMap 和 LinkedList 的特性。它的内部数据结构是通过链表和哈希表联合存储的,可以保证元素按照插入顺序或者访问顺序遍历。以下是两种常见的遍历方式:
1. **自然顺序遍历(插入顺序)**:
如果你不指定构造函数中的 `accessOrder` 参数,默认情况下(true 或不传递),LinkedHashMap 会维护元素的插入顺序,即它们会被添加到列表的前端。你可以使用增强 for 循环(for-each loop)或者迭代器来遍历这样的链接映射:
```java
// 使用增强for循环
for (Map.Entry<K, V> entry : linkedMap.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
// 或者使用Iterator
Iterator<Map.Entry<K, V>> iterator = linkedMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<K, V> entry = iterator.next();
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
```
2. **访问顺序遍历**:
如果你传递 `accessOrder=true` 到构造函数中,那么每次访问元素都会移动到列表的末尾,形成最近最少使用的(Least Recently Used, LRU)效果。同样可以用上述方式遍历,只是顺序会随着访问而改变。
在遍历时,`Map.Entry` 对象提供了键值对的相关信息,包括键(key)、值(value)以及关联关系。