码迷,mamicode.com
首页 > 其他好文 > 详细

LinkedList 的双向链表存储数据 底层源码分析

时间:2021-02-20 11:54:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ati   说明   nod   通过   第一个   双向链表   一个   this   final   

 1 class MyLinkedList<E> {
 2 
 3     int size = 0;//集合元素的个数
 4 
 5     Node<E> first;//指向第一个元素
 6     Node<E> last;//指向最后一个元素
 7 
 8     //元素
 9     private static class Node<E> {
10         E item;//元素核心
11         Node<E> prev;//元素头部
12         Node<E> next;//元素尾部
13 
14         Node(Node<E> prev, E item,Node<E> next) {
15             this.item = item;
16             this.prev = prev;
17             this.next = next;
18         }
19     }
20 
21     //集合添加元素操作
22     public boolean add(E e) {
23         linkLast(e);
24         return true;
25     }
26 
27     //集合添加元素逻辑(双向链表)
28     private void linkLast(E e) {
29         //局部常量l指向此时的最后一个元素
30        final Node<E> l = last;
31        // 通过l实参,使加入的新元素newNode其头部指向集合的最后那个元素
32         Node newNode = new Node(l, e, null);
33         //将新元素newNode标记为最后一个元素
34         last = newNode;
35         if (l == null) {//如果为true,说明newNode是集合中添加的第一个元素
36             //将newNode标记为第一个元素
37             first = newNode;
38         } else { //否则,就把倒数第二个元素的尾部指向最后一个元素
39             l.next = newNode;
40         }
41         size++;
42     }
43 
44 }

 

LinkedList 的双向链表存储数据 底层源码分析

标签:ati   说明   nod   通过   第一个   双向链表   一个   this   final   

原文地址:https://www.cnblogs.com/zui-ai-java/p/14414193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!