美文网首页
队列接口方法

队列接口方法

作者: 墨_0b54 | 来源:发表于2021-10-24 18:30 被阅读0次

Queue队列接口

先进后出,只能一头进,另一头出

public interface Queue<E> extends Collection<E> {

    //在队尾添加一个元素
    boolean add(E e);
    boolean offer(E e);

    //从队首弹出一个元素
    E remove();
    E poll();

    //检索队首元素
    E element();
    E peek();
}
  • add、remove、element在遇到容量限制时会抛异常
  • offer、poll、peek不会抛异常,offer在添加失败时会返回false,poll和peek在没有元素时会返回null
  • 所以尽量不要在队列(包括下面的双端队列)中插入null元素,因为poll和peek方法在没有元素时也会返回null,代码可能会产生歧义

Deque双端队列接口

两头都可以进出

public interface Deque<E> extends Queue<E> {
    //在队首添加一个元素
    void addFirst(E e);
    boolean offerFirst(E e);

    //在队尾添加一个元素
    void addLast(E e);
    boolean offerLast(E e);

    //删除队首元素
    E removeFirst();
    E pollFirst();

    //删除队尾元素
    E removeLast();
    E pollLast();

    //检索队首元素
    E getFirst();
    E peekFirst();
    //检索队尾元素
    E getLast();
    E peekLast();

    //删除匹配到的第一个元素
    boolean removeFirstOccurrence(Object o);
    boolean removeLastOccurrence(Object o);

    // *** Queue methods ***
    //普通队列中的方法
    boolean add(E e);
    boolean offer(E e);
    E remove();
    E poll();
    E element();
    E peek();

    // *** Stack methods ***
    //栈方法,双端队列可以实现栈
    void push(E e);
    E pop();


    // *** Collection methods ***

    boolean remove(Object o);

    boolean contains(Object o);

    Iterator<E> iterator();

    Iterator<E> descendingIterator(); //倒序迭代器

}

双端队列对于普通队列多出了队尾的方法。
LinkedList实现了Deque接口,具体可以参考LinkedList的实现。
注意LinkedList是没有容量限制的,所以add与offer实际上的效果是一样的,不会抛出异常。
PS:先了解了队列的接口意义,再去看队列的实现会更容易理解。

相关文章

  • 队列接口方法

    Queue队列接口 先进后出,只能一头进,另一头出 add、remove、element在遇到容量限制时会抛异常 ...

  • 阻塞队列

    阻塞队列BlockingQueue不支持插入null元素,好好了解一下阻塞队列接口设计。 了解阻塞队列的接口方法后...

  • JUC学习笔记(三)—同步阻塞队列

    BlockingQueue阻塞队列接口继承自Queue接口,BlockingQueue接口提供了3个添加元素方法:...

  • 多线程(15) — 阻塞队列

    阻塞队列(BlockingQueue)接口继承了Queue接口,其有两个实现阻塞的方法:1. 移除阻塞:当队列为空...

  • JAVA队列ArrayBolcokQueue

    Queue的继承结构: Queue接口就定义了几个常用的方法,Queue接口没有定义阻塞队列方法,而是在Block...

  • java中的队列

    一、队列是什么 队列是一种先进先出的数据结构。 二、队列的接口定义 方法名称作用队列满boolean add(E ...

  • Interface Queue

    Queue队列继承了Collection接口,并扩展了队列相关方法 添加到队尾,取/删除从对头。 boolean ...

  • 阻塞队列源码解析

    阻塞队列接口 BlockingQueue的方法 既然是队列,说明遵循先进先出的规则(FIFO),肯定有入队和...

  • LinkedList原理解析

    LinkedList的继承结构: Queue(interface): 队列的父接口,抽象方法: Deque(int...

  • 手写一个堵塞队列

    定义队列接口 队列实现

网友评论

      本文标题:队列接口方法

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