linkedHashMap.getLastEntry() 源码
时间: 2024-06-15 17:09:38 浏览: 66
LinkedHashMap.getLastEntry() 方法是用于获取 LinkedHashMap 中最后一个键值对的方法。下面是该方法的源码实现:
```java
// 获取最后一个键值对
public Entry<K,V> getLastEntry() {
// 如果 LinkedHashMap 为空,则返回 null
if (size == 0) {
return null;
}
// 如果 accessOrder 为 true,即按访问顺序排序
if (accessOrder) {
// 遍历双向链表,找到最后一个节点并返回
for (Entry<K,V> e = tail; e != null; e = e.before) {
if (e.value != null) {
return e;
}
}
} else {
// 如果 accessOrder 为 false,即按插入顺序排序
// 直接返回最后一个节点
return tail;
}
return null;
}
```
该方法首先判断 LinkedHashMap 是否为空,如果为空则直接返回 null。然后根据 accessOrder 的值来决定是按访问顺序还是按插入顺序来查找最后一个节点。如果 accessOrder 为 true,即按访问顺序排序,则从双向链表的尾部开始遍历,找到第一个值不为 null 的节点并返回。如果 accessOrder 为 false,即按插入顺序排序,则直接返回双向链表的尾节点。
阅读全文