返回信息流如图,如果Point1的条件为true,应该就是e!=tail,那应该有a!=null,为什么Point2位置还要判断呢。
void afterNodeAccess(Node<K,V> e) { // move node to last
LinkedHashMap.Entry<K,V> last;
if (accessOrder && (last = tail) != e) { // Point 1
LinkedHashMap.Entry<K,V> p =
(LinkedHashMap.Entry<K,V>)e, b = p.before, a = p.after;
p.after = null;
if (b == null)
head = a;
else
b.after = a;
if (a != null)
a.before = b;
else // Point 2
last = b;
if (last == null)
head = p;
else {
p.before = last;
last.after = p;
}
tail = p;
++modCount;
}
}
这是一条镜像帖。来源:北邮人论坛 / java / #60193同步于 2018/9/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于LinkedHashMap 一个代码片段的问题
nanguohao
2018/9/9镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复