• java之LinkedList.add


    LinkedList:
      public boolean add(E e) {
            linkLast(e);
            return true;
        }
     void linkLast(E e) {  
     //last为当前集合的最后一个元素的指针位置元素,并且将其赋值给名称为l的node对象
            final Node<E> l = last;  
            //初始换一个新的node对象,传入的参数有 l:同上  e:传入的需要存入的数据对象
            final Node<E> newNode = new Node<>(l, e, null);
            //将新传入的数据的对象赋值给当前集合的最后指针元素
            last = newNode;
            //如果l为空(表示当前集合长度为零)
            if (l == null)
                //新创建的node对象放在集合的第一位
                first = newNode;
            else
                //如果l对象不为空则把新创建的node对象赋值给l对象中的node类型的next对象
                l.next = newNode;
            //集合长度
            size++;
            //修改次数
            modCount++;
        }
        

    Node<E>为集合中的内部静态类:

        private static class Node<E> {
            E item;
            Node<E> next;
            Node<E> prev;
    
            Node(Node<E> prev, E element, Node<E> next) {
                this.item = element;
                this.next = next;
                this.prev = prev;
            }
        }

     当调用集合add方法传入需要存放的数据时:

      1、先把last(last是当前集合的最后一个元素,如果集合的长度为空,last则为null)赋给名称为l的node对象。

      2、创建一个新的node对象,用来存放新的数据元素,同时通过带参构造把存入之前集合中的最后一个元素与之建立联系,将之前的最后一个元素赋给新创建的node对象的prev属性。

      3、将存入的数据元素设置为当前集合中的最后一个元素

      4、如果当前集合长度为空,则设置当前存入的元素为第一个元素,否则赋给存入之前的最后一个元素的next属性

           

  • 相关阅读:
    第一节 变量与常量
    go语言学习笔记
    Java日期时间API系列41-----根据毫秒值计算倒计时
    数据库DML(数据操纵)
    数据库概述和DDL(数据库定义)
    软件测试基础理论
    软件测试学习大纲
    matplotlib
    pandas详细应用和文件处理
    DataFrame
  • 原文地址:https://www.cnblogs.com/shiguotao-com/p/10060368.html
Copyright © 2020-2023  润新知