首页 > 其他分享 >JDK 1.8 LinkedList 关键代码分析 重要属性和add

JDK 1.8 LinkedList 关键代码分析 重要属性和add

时间:2023-01-18 16:00:26浏览次数:31  
标签:Node LinkedList JDK 1.8 add transient newNode 节点


    /**
     * 有序(输入有序),不唯一
     * 底层实现是双向链表
     * 易修改,不易查询
     */
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
    //集合的大小
    transient int size = 0;

    //头节点
    transient Node<E> first;

     //尾节点
    transient Node<E> last;
     /**
     * 节点内部类
     **/
      private static class Node<E> {
        E item; //元素的内容
        Node<E> next;//下一个节点
        Node<E> prev;//上一个节点
        }
    
/**
* 添加一个元素
* 在尾添加
**/    
    public boolean add(E e) {
        linkLast(e);
        return true;
    }
    /**
    *在尾添加一个元素
    **/
    void linkLast(E e) {
        final Node<E> l = last;
        final Node<E> newNode = new Node<>(l, e, null);
        last = newNode;
        if (l == null)
            first = newNode;
        else
            l.next = newNode;
        size++;
        modCount++;
    }
}

标签:Node,LinkedList,JDK,1.8,add,transient,newNode,节点
From: https://www.cnblogs.com/youran-he/p/17060046.html

相关文章

  • JDK 1.8 ArrayList源码分析 关键代码
    /***1.ArrayListAbstractList中实现了List接口冗余,作者已经承认*2.RandomAccess可以随机访问,标记接口***/publicclassArrayList<E>extendsAbstractList<E> ......
  • JDK8的新特性总结
    文章目录1.接口默认方法实现2.新增Base64加解密API2.1.Base64编码简介2.2.JDK1.8之前Base64的API2.3.JDK1.8之后Base64的API3.时间日期处理类3.1.LocalDate常用......
  • jdk环境变量
    a.首先要打开系统环境变量配置的页面。具体操作是:桌面上找到“此电脑”,然后右键“属性”。b.c.在新建页面输入"变量名"位JAVA_HOME,输入“变量值”为你安装的JDK路径d.......
  • 【学习日志】Cglib动态代理和JDK动态代理的对比
     CglibJDKProxy实现方式生成被代理类的子类通过被代理类实现的接口+反射速度慢(曾经快于JDKProxy,但JDKProxy几次迭代后逐渐落后)快限制被代理类不......
  • 卸载安装jdk
    卸载jdk1.删除java安装目录2.删除java_home3.删除path下关于java的目录4.Java-version安装jdk1.百度搜索jdk8,找到下载地址2.同意协议3.下载电脑对应的版本4.双击......
  • ArrayList和LinkedList的区别
    ArrayList:基于动态数组。连续内存存储,适合下标访问(随机访问)。扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,将老数组数据拷贝到新数组,如果不是尾部插入数据还会涉......
  • 分析JDK、JRE、JVM、JIT 四者的关系与在代码运行时扮演的角色
    [1]四者的简要介绍  ·​​JDK(JavaDevelopmentKit)​​是针对Java开发人员的产品,它包括了Java运行环境JRE、Java工具和Java基础类库;  ·​​JRE(JavaRuntime......
  • linux系统通过yum命令安装jdk
    在linux上查看jdk版本命令:java-version,如下图所示-bash:java:commandnotfound,说明没有安装jdk接下来执行yumsearchjava|grepjdk命令,查询可以安装的jdk版本rpm......
  • centos7 安装jdk11
    升级了jenkins,发现无法启动。手动启动时提示jdk版本过旧,于是升级jdk。因为之前我是使用tar安装,所以我直接删除jdk1.8的全部文件,然后删除配置文件的相关配置,然后重新安......
  • [Java SE] JDK版本特性解读:@PostStruct[JDK1.6-JDK1.8]
    [email protected]概述定义及用途@PostConstruct(javax.annotation.PostConstruct)注解好多人以为是Spring提供的。而实际上是Java自身的注解。Java中该注解的说明:@P......