当前位置: 首页> 健康> 母婴 > LinkedList----源码分析

LinkedList----源码分析

时间:2025/7/12 20:02:43来源:https://blog.csdn.net/weixin_65237252/article/details/140364223 浏览次数:0次
源码介绍
public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable{}
添加过程中的操作:

当创建LinkedList类时,会调用其空参构造方法,将其参数进行初始化,里面有:

transient int size = 0;//实际集合大小
​
/*** Pointer to first node.*/
transient Node<E> first;//指向第一个元素
​
/*** Pointer to last node.*/
transient Node<E> last;//指向最后一个元素

当我们进添加元素的时候,此时会调用我们的linkedLast方法,然后将我们要添加的元素放入一个Node内部类中进行封装,如下:

private static class Node<E> {E item;//我们的具体数据Node<E> next;//指向下一个节点Node<E> prev;//指向前一个节点
//linkedLast方法中会调用我们这个满参构造Node(Node<E> prev, E element, Node<E> next) {this.item = element;this.next = next;this.prev = prev;}
}

在调用linkedLast方法:

void linkLast(E e) {final Node<E> l = last;//首先获取我们的外部类中的成员last即为linkedList指向最后一个元素的成员变量final Node<E> newNode = new Node<>(l, e, null);//传入头节点、数据、尾节点last = newNode;//由于是插入数据,所以直接last指向新节点if (l == null)first = newNode;//如果last是空,则说明此时是第一个节点elsel.next = newNode;//否则则让原先的last节点指向我们新插入的节点size++;//长度跟着变化modCount++;//记录修改次数
}

关键字:LinkedList----源码分析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: