A collection designed for holding elements prior to processing.
一个设计用来保存需要预先处理元素的Collection
由此看来. 队列不一定是先进先出. 只是大部分队列的优先级标准取决于队列元素入队的顺序.
Queue接口有6个函数. 我认为应该把他们分成两类.一类抛出异常. 一类不抛出异常.
抛出异常
入队: boolean add(E e)
入队失败抛出异常
出队: E remove()
出队失败抛出NoSuchElementException异常
队头: E elements()
队列为空抛出 NoSuchElementException
不抛出异常
入队: boolean offer(E e)
入队失败只返回false
出队: E poll()
出队失败(队列为空)返回null
队头: E peek()
队列为空返回 null
另外值得一提的是BlockingQueue 中还有一对方法
入队: void put(E e)
等到队列可用再入队,没有返回值,等待被打断时抛出InterruptedException
出队: E take()
等到队列可用再出队,死等.直到被打断.
网友评论