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屬性

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM