zoukankan      html  css  js  c++  java
  • 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属性

           

  • 相关阅读:
    将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据
    DataTable和List集合互转
    Sql2008中使用DataTable作为存储过程的参数
    jquery实现很简单的DIV拖动
    //禁用右键、文本选择功能、复制按键
    jquery---点击弹出层
    读取xml字符串
    mogodb安装,复制,副本集
    windows服务器安装zabbix客户端
    系统初始化脚本(Centos7.2)
  • 原文地址:https://www.cnblogs.com/shiguotao-com/p/10060368.html
Copyright © 2011-2022 走看看