簡體   English   中英

LinkedList - addLast()並不總是在列表末尾添加值

[英]LinkedList - addLast() not always adding value at end of a list

我必須在列表的末尾添加一個元素,所以現在我使用LinkedList的 addLast()函數在最后添加元素。 當且僅當后面沒有add()語句時,才會在列表中添加元素。

下面工作正常。

LinkedList<String> ls = new LinkedList<String>();

    ls.add("C");
    ls.add("E");
    ls.add("D");
    ls.add("B");

    ls.addLast("F");            
    ls.addFirst("A");

    for( String l : ls )             
          System.out.println( l  );

在下面的例子中,它不會在列表的末尾添加項目。

LinkedList<String> ls = new LinkedList<String>();

    ls.add("C");
    ls.add("E");
    ls.add("D");

    ls.addLast("F"); 
    ls.add("B");

    ls.addFirst("A");

    for( String l : ls )             
          System.out.println( l  );

但是,無論您調用它的位置, addFirst()都可以正常工作。

我怎么能做到這一點? 任何建議請。

來自java文檔:

public boolean add(E e)
Appends the specified element to the end of this list.
This method is equivalent to addLast(E).

Specified by:
add in interface Collection<E>
Specified by:
add in interface Deque<E>
Specified by:
add in interface List<E>
Specified by:
add in interface Queue<E>
Overrides:
add in class AbstractList<E>
Parameters:
e - element to be appended to this list
Returns:
true (as specified by Collection.add(E))

在您的情況下,在將“F”添加到列表末尾后,為列表末尾添加“B”

“它不會在列表的末尾添加項目。”

是的,它會在當前列表的末尾添加項目。 它不會做的就是讓它永遠持續下去。 想象一下,如果你做了兩次addLast(),哪一個會有優先權會發生什么? 與addFirst()相同,它只適用於當前列表,如果你添加更多第一,其他的將不再是第一個。

指定添加"B"的位置,例如ls.add(ls.size() - 1, "B"); 然后在最后添加"F"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM