先看代码:
LinkedList books=new LinkedList();
books.offerFirst("java");
books.offer("C#");
System.out.println(books);
结果自然是:[java, C#]
改变代码:
LinkedList books=new LinkedList();
books.push("C");
books.offer("C#");
books.offerFirst("java");
System.out.println(books);
加入了push后,代码结果变成:[java, C, C#]
改变代码:
LinkedList books=new LinkedList();
books.offer("C#");
books.offerFirst("java");
books.push("C");
System.out.println(books);
代码结果变成:[C, java, C#]
这时,原因观察push的方法说明:
Pushes an element onto the stack represented by this list. In other words, inserts the element at the front of this list.
This method is equivalent to addFirst.
Specified by: push(...) in Deque
Parameters:
e the element to push
Since:
1.6
注意上述文字中:equivalent 等同于的意思,自然就明白了上面的结果原因了。继续改进代码:
LinkedList books=new LinkedList();
books.offer("C#");
books.offerFirst("java");
books.push("C");
books.pop();
System.out.println(books);
查看pop的解释:
Pops an element from the stack represented by this list. In other words, removes and returns the first element of this list.
This method is equivalent to removeFirst().
Specified by: pop() in Deque
Returns:
the element at the front of this list (which is the top of the stack represented by this list)
Throws:
NoSuchElementException - if this list is empty
Since:
1.6
只要注意到This method is equivalent to removeFirst().自然就明白答案:[java, C#]的原因了。
要多看api,自然就能明白很多了。