当前位置:   article > 正文

Java--Queue、Deque双端队列--LinkedList实现_deque的实现类

deque的实现类

Queue

(1)Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了:offer()poll()peek();
(2)Queue的实现类LinkedListPriorityQueue。最常用的实现类是LinkedList

Queue 队列 API

java.util.Queue<E> 5

add--remove--element--抛出异常
offer--poll--peek--返回特殊值

boolean add(E element); 
boolean offer(E element); 
如果队列没有满,将给定的对象添加到队列的队尾,并返回true;
如果双端队列已满,第一个方法抛出 IllegalStateException,第二个方法返回 falseE remove();
E poll();
如果队列不为空,删除并返回 队列队头的元素。
如果队列为空,第一个方法抛出 NoSuchElementException,第二个方法返回 nullE element();
E peek();
如果队列不为空,返回 队列队头的元素,但不删除。
如果队列为空,第一个方法抛出 NoSuchElementException,第二个方法返回 null//《Java核心技术 卷I》
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
Queue方法(一进一出)等效Deque方法(二进二出)
add()addLast()
remove()removeFirst()
element()getFirst()
————
offer()offerLast()
poll()pollFirst()
peek()peekFirst()

Deque

(1)Deque是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedListArrayDequeLinkedBlockingDeque,其中LinkedList是最常用的。

Deque有三种用途:

  • 普通队列(一端进另一端出):
    Queue<> queue = new LinkedList<>();Deque<> deque = new LinkedList<>();
  • 双端队列(两端都可进出)
    Deque<> queue = new LinkedList<>();
  • 堆栈
    Deque<> deque = new LinkedList<>();

注意:Java堆栈Stack类已经过时,Java官方推荐使用Deque替代Stack使用。

Deque 堆栈 API
push();
pop();
peek();
  • 1
  • 2
  • 3
堆栈方法等效Deque方法
push()addFirst()
pop()removeFirst()
peek()peekFirst()
Deque 双端队列 API
java.util.Deque<E> JDk 1.6

First--Last
add--remove--get--抛出异常
offer--poll--peek--返回特殊值

void addFirst(E element); 
void addLast(E element);
E removeFirst();
E removeLast();
E getFirst();
E getLast();

boolean offerFirst(E element);
boolean offerLast(E element);
E pollFirst();
E pollLast();
E peekFirst();
E peekLast();

将给定的对象添加到双端队列的队头或队尾。
如果双端队列已满,前面两个方法抛出 IllegalStateException,后面两个方法返回 false。

如果双端队列不为空,删除并返回 双端队列队头/队尾的元素。
如果双端队列为空,前面两个方法抛出 NoSuchElementException,后面两个方法返回 null。

如果双端队列不为空,则返回 双端队列队头/队尾的元素,但不删除。
如果双端队列为空,前面两个方法抛出 NoSuchElementException,后面两个方法返回 null//《Java核心思想 卷I》
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

关于Queue的更多详情:【Java】Java双端队列Deque使用详解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/906989
推荐阅读
相关标签
  

闽ICP备14008679号