[英]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.