队列接口方法

2021-10-24  本文已影响0人  墨_0b54

Queue队列接口

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

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

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

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

    //检索队首元素
    E element();
    E peek();
}

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:先了解了队列的接口意义,再去看队列的实现会更容易理解。

上一篇 下一篇

猜你喜欢

热点阅读