JDK 1.5 interface

Queue 接口定义

java.util 包下的 Queue<E> 接口继承自 Collection<E> 接口,是一种FIFO(先进先出)的数据结构。

  • 下面的表格是 Queue<E> 接口定义的方法: | Group | Method | Description | Remark | | —- | —- | —- | —- | | 入队 | add | boolean add(E e)
    入队:把元素加到队尾。 | 在没有可用空间时抛出异常:
    IllegalStateException | | | offer | boolean offer(E e)
    入队:把元素加到队尾。 | 在没有可用空间时返回:false | | 出队 | remove | E remove()
    出队:返回队首的元素并移除。 | 在队列为空时抛出异常:
    NoSuchElementException | | | poll | E poll()
    出队:返回队首的元素并移除。 | 在队列为空时返回:null | | 查看 | element | E element()
    查看:返回队首的元素,但不移除。 | 在队列为空时抛出异常:
    NoSuchElementException | | | peek | E peek()
    查看:返回队首的元素,但不移除。 | 在队列为空时返回:null |

常用的队列实现类

LinkedList

  • 采用链表实现的队列,没有个数限制

    1. Queue<String> q = new LinkedList<>();

    ArrayDeque

  • 采用数组实现的队列,受限于数组的大小

    1. Queue<String> q = new ArrayDeque<>();

    PriorityQueue

  • PriorityQueue是无界的优先级队列,保存的元素按照大小进行重新排序

  • PriorityQueue的元素根据自然排序进行排序,或者按队列构建时提供的Comparator进行排序
    1. PriorityQueue<String> q = new PriorityQueue<>();