美文网首页
Queue/Deque接口

Queue/Deque接口

作者: 言西枣 | 来源:发表于2016-05-18 22:04 被阅读100次

Queue


  • 先入先出(FIFO)的数据结构

boolean add(E element)
boolean offer(E element)
在队列尾部添加元素,如果队列已满,add将抛出IllegalStateException,offer返回false

public boolean add(E e) {
        if (offer(e))
            return true;
        else
            throw new IllegalStateException("Queue full");
    }

E remove()
E poll()
删除并返回队头元素,如果队空,remove抛出NoSuchElementException, poll返回null

public E remove() {
        E x = poll();
        if (x != null)
            return x;
        else
            throw new NoSuchElementException();
    }

E element()
E peek()
返回队头元素,如果队空,element抛出NoSuchElementException, peek返回null

public E element() {
        E x = peek();
        if (x != null)
            return x;
        else
            throw new NoSuchElementException();
    }

上面三段代码来自jdk1.8 java.util.AbstractQueue

Deque


  • 双端队列,只能在队列的首尾进行操作
  • 实现类:ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList
  • Deque被推荐用来取代Stack类

Summary of Deque methods

||First Element (Head)||Last Element (Tail)||
|-|
||Throws exception|Special value|Throws exception|Special value|
|Insert|addFirst(e)|offerFirst(e)|addLast(e)|offerLast(e)|
|Remove|removeFirst()|pollFirst()|removeLast()|pollLast()|
|Examine|getFirst()|peekFirst()|getLast()|peekLast()|

相关文章

  • 关于LinkedList

    LinkedList实现了List接口与Deque接口。Deque解开意思是“Double End Queue”(...

  • 深入了解双端队列Deque

    Deque的类图 由上图可知Deque在Java中以接口的形式存在,同时Deque还继承Queue(队列)的接口。...

  • Queue/Deque接口

    Queue 先入先出(FIFO)的数据结构 boolean add(E element)boolean offer...

  • java数据结构(三)

    从定义可以看出,ArrayDeque类,实现了 Deque接口,而Deque继承了Queue(队列)接口;而Que...

  • java集合框架总结

    queue接口和Deque接口 LinkedList和ArrayList区别 HashMap 和 HashTabl...

  • LinkedList, CopyOnWriteArrayList

    目录 LinkedList 继承关系 LinkedList 实现 Deque (继承自Queue接口)接口,即能将...

  • Java容器之双端队列Deque

      Deque是Queue的一个子接口,是Double Ended Queue的缩写,顾名思义Deque是一个支持...

  • java源码-ArrayDeque

    开篇  Deque 接口继承自 Queue接口,但 Deque 支持同时从两端添加或移除元素,因此又被成为双端队列...

  • Android-UIL-core.assist

    辅助包 1.deque包 1.Deque.java 双队列接口,extends queue. 这里要说明下 例如:...

  • Queue, Stack, Deque, LinkedList

    Stack是一个类。 Queue是接口。定义如下方法: Deque是Queue的子接口,定义了如下方法: Link...

网友评论

      本文标题:Queue/Deque接口

      本文链接:https://www.haomeiwen.com/subject/cpbwrttx.html