在Deque中,remove()和pop()之间的区别



此代码:

Deque<String> list = new LinkedList<>();
list.push("first");
list.push("second");
list.push("third");

System.out.println(list.remove());

相当于:

Deque<String> list = new LinkedList<>();
list.push("first");
list.push("second");
list.push("third");

System.out.println(list.pop());

pop((和remove((都会移除第一个元素(头(。那么,有两种不同方法的原因是什么呢?

这与遗留接口有关。来自javadoc:

Deques也可用作后进先出(LIFO(堆栈。应该优先使用此接口,而不是传统的Stack类。当deque用作堆栈时,元素会从deque的开头被推送和弹出。堆栈方法与下表所示的Deque方法完全等效:

Stack和Deque方法的比较

Stack Method|Equivalent Deque Method
push(e)|addFirst(e)
pop()|removeFirst()
peek()|peekFirst()

最新更新