zoukankan      html  css  js  c++  java
  • java util LinkedList源码

    定义及关系

    双向链表,实现List和Deque

    Deque保持链表的特性,如-getFirst,pollFirst方法

    属性值

    三个重要的属性,size个数,first头结点,last尾节点

    Node对象

    节点对象为Node,每个节点都是一个node对象,都有三个属性,本身的值item,上一个节点prev,下一个节点next。

    基本方法

     add(E e) 

    将数据插入到链表最后一个

    add方法调用linkLast,插入到最后一个。

    final Node<E> l = last; 取出最后一个节点
    final Node<E> newNode = new Node<>(l, e, null);  定义一个新的newNode节点,该节点的上一个节点为上一步取出的节点,值为e,下一个节点为null
    last = newNode; 将newNode置位链表的尾节点。

    之后判断第一个取出来的节点是不是空,如果是空表示这个链表目前只有一个节点数据,那么newNode也是头结点。

    不然就把newNode作为上一个节点的next节点。

    set(int index, E element) 

    根据index取出对应的节点,然后替换该节点的item值

    node方法查到对应的节点。根据if (index < (size >> 1)) 判断该index   < size的一半。  来进行是从头查询,还是从尾查询

     get(int index) 

    根据index返回node的item值

  • 相关阅读:
    Python——文件操作2
    Python——文件操作1
    Python——集合
    Springboot @Transactional捕获异常事务回滚
    elasticsearch5.2 高亮java代码
    Java static作用
    elasticsearch6.3 自动补齐suggest java代码
    spring boot通过官网创建新项目
    eclipse web工程不能 修改build path
    linux虚拟机添加网卡
  • 原文地址:https://www.cnblogs.com/fangyuandoit/p/13713792.html
Copyright © 2011-2022 走看看