我必须在列表的末尾添加一个元素,所以现在我使用 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()无论您在何处调用它都能正常工作。
我怎么能做到这一点?任何建议请。
答案 0 :(得分:1)
来自java docs:
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))
在您的情况下,您添加&#39; B&#39;在您添加&#39; F&#39;之后列表的末尾到列表的末尾
答案 1 :(得分:1)
“它不会在列表末尾添加项目。”
是的,它会在当前列表的末尾添加该项目。它不会做的就是让它永远持续下去。想象一下,如果你做了两次addLast(),哪一个会有优先权会发生什么?与addFirst()相同,它只适用于当前列表,如果你添加更多第一,其他的将不再是第一个。
答案 2 :(得分:0)
指定添加"B"
的位置,例如ls.add(ls.size() - 1, "B");
,然后将"F"
添加到最后。