集合里面存储的都是对象
添加第一个元素
添加第二个元素
依次往后添加对象/元素。
first指向linkedList集合里存储的第一个结点对象,last则指向最后一个结点对象,里面如果有一个就同时指向
pre指向上一个结点对象,next指向下一个结点对象,node结点(pre,e,next),里面的e或者item是真正存储对象的地方
创建一个LinkedList linkedList = new LinkedList();创建一个实例化集合,此时这个集合里面为空,它的头指针first,和尾指针last都指向null(空),linkList.add("a");
添加一个对象,通过add()方法里面的lastList()方法添加这个对象,进入后现先把尾指针last赋给l,然后创建一个newNode结点对象,
把l赋值给这个这个结点对象的pre,把需要存储的对象存放在这个结点对象的e里面,next再创这个结点对象时里面的方法已经置为null。然后把尾指针last指向新创建的结点对象,
然后判断l是否为空,如果为空,就把头指针指向这个结点,此时l为空所以不走else,此时第一个对象添加完成,添加第二对象时,由于头指针first和尾指针last都指向了
第一个结点对象,在添加第二个对象时,依旧通过add()方法里面的lastList()方法添加这个对象,进入后现先把尾指针last赋给l,所以此时l就指向上一个结点对象(也就是第一个结点对象),
然后创建一个新的结点对象newNode(也就是第二个结点对象),然后将l付给了第二个结点对象的pre,也就说这个时候这个对象的pre就指向了上一个结点对象,
然后把存储的对象存放在这个结点对象的e里面,next依旧为空,然后把尾指针指向这个新创建的节点对象,然后判断l是否为空,此时不为空,所以l.next = newNode;,因为前面l是指向上一个结点,
所以l.next就是上一个结点对象指向下一个节点对象,也就指向了刚才新创建的节点对象(此时为第二个节点对象),所以这个时候双向链表也就构成了。如果往后加对象/元素同时。
标签:结点,JAVA,LinkedList,指向,--,next,对象,添加,指针 From: https://www.cnblogs.com/wang1999an/p/16819440.html