学无先后,达者为师

网站首页 java综合 正文

JAVA中队列接口Queue和Deque的常用API

作者:薛宝钗倒拔垂杨柳 更新时间: 2022-11-29 java综合

Queue以及Deque都是继承于Collection,Deque是Queue的子接口。

Queue是FIFO的单向队列,Deque是双向队列。

Queue有一个直接子类PriorityQueue,而Deque中直接子类有两个:LinkedList以及ArrayDeque。

PriorityQueue的底层数据结构是数组,而无边界的形容,那么指明了PriorityQueue是自带扩容机制的。

ArrayDeque是无初始容量的双端队列,LinkedList则是双向链表。

PriorityQueue可以作为堆使用,而且可以根据传入的Comparator实现大小的调整,会是一个很好的选择。
ArrayDeque通常作为栈或队列使用,但是栈的效率不如LinkedList高。
LinkedList通常作为栈或队列使用,但是队列的效率不如ArrayQueue高。

1、Deque双向队列

  • LinkedList
    Modifier and Type Method and Description
    boolean add(E e)

    将指定的元素列表的结束。

    void add(int index, E element)

    在列表中指定的位置上插入指定的元素。

    boolean addAll(Collection<? extends E> c)

    追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。

    boolean addAll(int index, Collection<? extends E> c)

    将指定集合中的所有元素插入到该列表中,从指定位置开始。

    void addFirst(E e)

    在此列表的开始处插入指定的元素。

    void addLast(E e)

    将指定的元素列表的结束。

    void clear()

    从这个列表中移除所有的元素。

    Object clone()

    返回该 LinkedList浅拷贝。

    boolean contains(Object o)

    返回 true如果这个列表包含指定元素。

    Iterator<E> descendingIterator()

    返回在反向顺序在deque容器元素的迭代器。

    E element()

    检索,但不删除,此列表的头(第一个元素)。

    E get(int index)

    返回此列表中指定位置的元素。

    E getFirst()

    返回此列表中的第一个元素。

    E getLast()

    返回此列表中的最后一个元素。

    int indexOf(Object o)

    返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。

    int lastIndexOf(Object o)

    返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。

    ListIterator<E> listIterator(int index)

    返回此列表中元素的列表迭代器(在适当的顺序),从列表中的指定位置开始。

    boolean offer(E e)

    将指定的元素添加到列表的尾部(最后一个元素)。

    boolean offerFirst(E e)

    在列表的前面插入指定的元素。

    boolean offerLast(E e)

    在列表的结尾插入指定的元素。

    E peek()

    检索,但不删除,此列表的头(第一个元素)。

    E peekFirst()

    检索,但不删除该列表的第一个元素,或返回 null如果这个列表是空的。

    E peekLast()

    检索,但不删除该列表的最后一个元素,或返回 null如果这个列表是空的。

    E poll()

    检索并删除此列表的头(第一个元素)。

    E pollFirst()

    检索并移除此列表的第一个元素,或返回 null如果这个列表是空的。

    E pollLast()

    检索并移除此列表的最后一个元素,或返回 null如果这个列表是空的。

    E pop()

    从这个列表所表示的堆栈中弹出一个元素。

    void push(E e)

    将一个元素推到由该列表所表示的堆栈上。

    E remove()

    检索并删除此列表的头(第一个元素)。

    E remove(int index)

    移除此列表中指定位置的元素。

    boolean remove(Object o)

    从该列表中移除指定元素的第一个发生,如果它是存在的。

    E removeFirst()

    移除并返回此列表中的第一个元素。

    boolean removeFirstOccurrence(Object o)

    删除此列表中指定元素的第一个出现(当遍历从头到尾的列表)。

    E removeLast()

    移除并返回此列表中的最后一个元素。

    boolean removeLastOccurrence(Object o)

    删除此列表中指定元素的最后一次(当遍历从头到尾的列表时)。

    E set(int index, E element)

    用指定元素替换此列表中指定位置的元素。

    int size()

    返回此列表中元素的数目。

    Object[] toArray()

    返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。

    <T> T[] toArray(T[] a)

    返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。

  • ArrayDeque
    boolean add(E e)

    在这个队列的末尾插入指定元素。

    void addFirst(E e)

    在这个队列的前面插入指定元素。

    void addLast(E e)

    在这个队列的末尾插入指定元素。

    void clear()

    删除所有的从这个容器元素。

    ArrayDeque<E> clone()

    返回一个复制该deque容器。

    boolean contains(Object o)

    如果这两 true返回包含指定的元素。

    Iterator<E> descendingIterator()

    返回在反向顺序在deque容器元素的迭代器。

    E element()

    检索,但不删除,这代表的deque队列的头部。

    E getFirst()

    检索,但不删除该deque容器的第一个元素。

    E getLast()

    检索,但不删除该队列的最后一个元素。

    boolean isEmpty()

    返回 true如果队列不包含元素。

    Iterator<E> iterator()

    返回在deque容器元素的迭代器。

    boolean offer(E e)

    在这个队列的末尾插入指定元素。

    boolean offerFirst(E e)

    在这个队列的前面插入指定元素。

    boolean offerLast(E e)

    在这个队列的末尾插入指定元素。

    E peek()

    检索,但不删除,这代表的队列队列的头部,或返回 null如果队列是空的。

    E peekFirst()

    检索,但不删除该deque容器的第一个元素,或返回 null如果队列是空的。

    E peekLast()

    检索,但不删除该队列的最后一个元素,或返回 null如果队列是空的。

    E poll()

    检索并移除该deque表示队列的头部(换句话说,这个容器的第一个元素),或返回 null如果队列是空的。

    E pollFirst()

    检索并移除此队列的第一个元素,或返回 null如果队列是空的。

    E pollLast()

    检索并移除此队列的最后一个元素,或返回 null如果队列是空的。

    E pop()

    从这个弹出堆栈队列代表元素。

    void push(E e)

    将一个元素到该deque表示堆栈。

    E remove()

    检索并移除该deque队列的头代表。

    boolean remove(Object o)

    从这个队列中移除指定元素的一个实例。

    E removeFirst()

    检索并移除此队列的第一个元素。

    boolean removeFirstOccurrence(Object o)

    删除在这个队列的第一个出现的指定元素(当遍历容器从头部到尾部)。

    E removeLast()

    检索并移除此队列的最后一个元素。

    boolean removeLastOccurrence(Object o)

    在deque容器移除指定元素的最后出现(当遍历容器从头部到尾部)。

    int size()

    返回该容器元素的数量。

    Object[] toArray()

    返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素)。

    <T> T[] toArray(T[] a)

    返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素);返回数组的运行时类型为指定数组。

2、Queue单向队列

  • PriorityQueue​​​​​​​
    boolean add(E e)

    将指定的元素插入到该优先级队列中。

    void clear()

    从这个优先级队列中移除所有的元素。

    boolean contains(Object o)

    返回 true如果此队列包含指定的元素。

    Iterator<E> iterator()

    返回此队列中元素的迭代器。

    boolean offer(E e)

    将指定的元素插入到该优先级队列中。

    E peek()

    检索,但不删除,这个队列头,或返回 null如果队列为空。

    E poll()

    检索并移除此队列的头,或返回 null如果队列为空。

    boolean remove(Object o)

    从该队列中移除指定元素的一个实例,如果它是存在的。

    int size()

    返回此集合中的元素的数目。

    Spliterator<E> spliterator()

    创建一个后期绑定和快速失败 Spliterator在队列中的元素。

    Object[] toArray()

    返回一个包含此队列中所有元素的数组。

    <T> T[] toArray(T[] a)

    返回包含此队列中的所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。

原文链接:https://blog.csdn.net/qq_51808547/article/details/127879272

栏目分类
最近更新