zoukankan      html  css  js  c++  java
  • LinkedList 的双向链表存储数据 底层源码分析

     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 }
  • 相关阅读:
    Mac OS X开发学习 -打开文件选择器并获取文件
    Mac OS X开发学习
    第三方开源
    Xcode操作
    Mac操作
    XCode6.1 错误
    ios 本地推送
    IOS 语法
    IOS 其他
    IOS 语法
  • 原文地址:https://www.cnblogs.com/zui-ai-java/p/14414193.html
Copyright © 2011-2022 走看看