继承关系
Queue
Queue<Integer> queue = new LinkedList<Integer>();
添加元素
queue.add(1);
queue.offer(1);
区别:在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。
取出元素
queue.remove();
queue.poll();
queue.element();
queue.peek();
区别:
remove() : 移除队列头的元素并且返回,如果队列为空则抛出异常
poll() : 移除队列头的元素并且返回,如果队列为空则返回null
element() :返回队列头元素但不移除,如果队列为空,则抛出异常
peek() :返回队列头元素但不移除,如果队列为空,则返回null
推荐使用
offer(); // 添加元素到队尾
poll(); // 移除并返回队首元素
peek(); // 返回队首元素
Deque
Deque<Integer> deque = new LinkedList<Integer>();
模拟栈
添加元素
deque.push();
取出元素
deque.pop();
deque.peek();
模拟双端队列
添加元素
deque.offerFirst(4);
deque.offerLast(4);
取出元素
stk.pollFirst();
stk.pollLast();
stk.peekFirst();
stk.peekLast();