1. Queue继承自 Collection,我们先来看看api的解释
Each of these methods exists in two forms: one throwsan exception if the operation fails, the other returns a special value (either {@code null} or {@code false}, depending on the operation). The latter form of the insert operation is designed specifically for use with capacity-restricted {@code Queue} implementations;
in most implementations, insert operations cannot fail.
2. 接口代码量比较少,我直接贴代码了
public interface Queue<E> extends Collection<E> {
boolean add(E var1);
boolean offer(E var1);
E remove();
E poll();
E element();
E peek();
}
3. 从方法名上不太好猜每个方法的作用,我们直接来看 API 吧
| ~ | 抛出异常 | 返回特殊值 |
|---|---|---|
| 插入 | add(e) | offer(e) |
| 移除 | remove() | poll() |
| 检查 | element() | peek() |
好像就除了对增删查操作增加了一个不抛出异常的方法,没什么特点吧,我们继续看描述~
在处理元素前用于保存元素的 collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。
就描述了这三组方法的区别,那么以后我操作队列尽量用不抛出异常的方法总行了吧。另外也没看出什么名堂,那么队列这个接口到底是规范了什么行为?关于队列的定义
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
4. Java文档对于不同方法的解释
作者:diamond_lin
链接:juejin.cn/post/684490…
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。