今日份的源码——LinkedList

LinkedList原理解读

LinkedList基本结构如下

15253776-22cfe08535d1ebc8.png

属于List接口属于Collection接口

看看源码是怎么写的

1、LinkedList主要属性


15253776-6eea57464c73f0ad.png

它里面维护了头、尾两个节点,维护者一个节点统计数size;

2、Node<E>结构,List中真正需要存储的value,属于Node的中的E类型的值

15253776-eeaeac5d03d59298.png

每一个节点都保存着指向下一个、上一个节点的指针,由此可见,LinkedList中维护者一条双向链表;

3、看看add方法,直接将元素追加到末尾

15253776-1b263e977d26b049.png
15253776-ab1cfaecdaa2ab2e.png

4、size方法,直接取维护的size属性值

15253776-fcda44c3451a5e1a.png

5、我们还可以直接获取第一次跟最后一次存入的数据

扫描二维码关注公众号,回复: 5223138 查看本文章
15253776-df64ac959131ec72.png
15253776-f5aa565e6aee7ecc.png

6、还可以指定添加元素e到头或者尾

15253776-8c3e3b48a16f2720.png
15253776-99dfa91d09d5f431.png
跟add(e)一样

7、删除头、尾

15253776-d7a79a8d48416694.png
15253776-f230fad035e0c4f0.png

8、get(int index)

15253776-6bed48a00a431216.png
15253776-113e72de281b35b6.png
这里采用了目标距离头、尾的比较


9、替换原位置的值

15253776-f5e7cca79532b2cb.png


10、模拟堆栈特性

15253776-2e6db87eaf97f5aa.png
15253776-7aa38f05a655c476.png

11、remove方法默认移除头部

15253776-058c3ea5e3e5d802.png
15253776-5c74ed567433666d.png

封装的断链方法

15253776-758ec5b52c538865.png
15253776-e01648623b0ca98b.png

基本方法分析到此,待续...

猜你喜欢

转载自blog.csdn.net/weixin_34383618/article/details/87448187