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

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 TypeMethod and Description
    booleanadd(E e)

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

    voidadd(int index, E element)

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

    booleanaddAll(Collection<? extends E> c)

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

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

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

    voidaddFirst(E e)

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

    voidaddLast(E e)

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

    voidclear()

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

    Objectclone()

    返回该 LinkedList浅拷贝。

    booleancontains(Object o)

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

    Iterator<E>descendingIterator()

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

    Eelement()

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

    Eget(int index)

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

    EgetFirst()

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

    EgetLast()

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

    intindexOf(Object o)

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

    intlastIndexOf(Object o)

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

    ListIterator<E>listIterator(int index)

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

    booleanoffer(E e)

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

    booleanofferFirst(E e)

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

    booleanofferLast(E e)

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

    Epeek()

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

    EpeekFirst()

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

    EpeekLast()

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

    Epoll()

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

    EpollFirst()

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

    EpollLast()

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

    Epop()

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

    voidpush(E e)

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

    Eremove()

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

    Eremove(int index)

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

    booleanremove(Object o)

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

    EremoveFirst()

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

    booleanremoveFirstOccurrence(Object o)

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

    EremoveLast()

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

    booleanremoveLastOccurrence(Object o)

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

    Eset(int index, E element)

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

    intsize()

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

    Object[]toArray()

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

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

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

  • ArrayDeque
    booleanadd(E e)

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

    voidaddFirst(E e)

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

    voidaddLast(E e)

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

    voidclear()

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

    ArrayDeque<E>clone()

    返回一个复制该deque容器。

    booleancontains(Object o)

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

    Iterator<E>descendingIterator()

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

    Eelement()

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

    EgetFirst()

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

    EgetLast()

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

    booleanisEmpty()

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

    Iterator<E>iterator()

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

    booleanoffer(E e)

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

    booleanofferFirst(E e)

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

    booleanofferLast(E e)

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

    Epeek()

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

    EpeekFirst()

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

    EpeekLast()

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

    Epoll()

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

    EpollFirst()

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

    EpollLast()

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

    Epop()

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

    voidpush(E e)

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

    Eremove()

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

    booleanremove(Object o)

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

    EremoveFirst()

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

    booleanremoveFirstOccurrence(Object o)

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

    EremoveLast()

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

    booleanremoveLastOccurrence(Object o)

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

    intsize()

    返回该容器元素的数量。

    Object[]toArray()

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

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

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

2、Queue单向队列

  • PriorityQueue​​​​​​​
    booleanadd(E e)

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

    voidclear()

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

    booleancontains(Object o)

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

    Iterator<E>iterator()

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

    booleanoffer(E e)

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

    Epeek()

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

    Epoll()

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

    booleanremove(Object o)

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

    intsize()

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

    Spliterator<E>spliterator()

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

    Object[]toArray()

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

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值