-
查看LinkedList 属性
发现有两个node 一个开始node, 一个结束node
点击查看node 对象
-
查看add 方法
e 是add 过来的值,
final Node l = last;// 最后一个node 赋值给 l node
final Node newNode = new Node<>(l, e, null); // 构建一个新的node 传入 最后一个node 和当前值
last = newNode; // 将新的node 赋值个结束node
if (l == null) // 首次添加
first = newNode; // 将新的node 给 开始node
else // 后续添加
l.next = newNode; // 设置上一个node 引用当前node
size++; // 集合大小 +1;
modCount++; // 修改次数+1 -
get 方法 源码
1.检查索引是否>0 并且小于 size
-
获取值
Node node(int index) {
// assert isElementIndex(index);if (index < (size >> 1)) { // 是判断当前索引是否< size的一半, 假如 size 是 8 这里就是 4 意思就是一半在开始node 查找 , 一半在结束node 查找,
Node x = first; // 前一半查找使用开始node查找
for (int i = 0; i < index; i++) // 查找node 的下一个node
x = x.next;
return x;
} else {
Node x = last; // 后一半查找使用结束node查找
for (int i = size - 1; i > index; i–)// 查找node 的上一个node
x = x.prev;
return x;
}
}
LinkedList 源码 阅读
最新推荐文章于 2024-07-25 17:45:03 发布