ArrayBlockingQueue 提供了一系列方法来操作队列中的元素,包括添加、移除、检查元素存在、获取元素等操作。以下是该类的主要方法摘要:
1. void clear(): 自动移除队列中的所有元素。
2. boolean contains(Object o): 检查队列是否包含指定元素,返回 true 或 false。
3. int drainTo(Collection c): 移除并添加所有可用元素到指定集合。
4. int drainTo(Collection c, int maxElements): 限制移除元素的数量,最多移除指定数量。
5. Iterator iterator(): 返回一个迭代器,按正确顺序遍历队列中的元素。
6. boolean offer(E o): 向队列尾部添加元素,如果队列满则返回 false。
7. boolean offer(E o, long timeout, TimeUnit unit): 等待指定时间后尝试添加元素,如果队列满则等待。
8. E peek(): 查看队列头部元素但不移除,空队列返回 null。
9. E poll(): 移除并返回队列头部元素,空队列返回 null。
10. E poll(long timeout, TimeUnit unit): 等待指定时间后移除头部元素,无元素时等待。
11. void put(E o): 添加元素到队列尾部,如有必要,会等待空间。
12. int remainingCapacity(): 返回队列在理想情况下可容纳的未阻塞元素数。
13. boolean remove(Object o): 移除队列中指定元素的第一个实例,如果存在。
14. int size(): 返回队列中元素的数量。
15. E take(): 移除并返回队列头部元素,队列空时会一直等待。
16. Object[] toArray(): 返回包含队列所有元素的数组。
17. T[] toArray(T[] a): 返回一个数组,包含队列元素,数组类型与指定数组相同。
18. String toString(): 返回队列的字符串表示。
ArrayBlockingQueue 基于 java.util.AbstractQueue,继承了 add, addAll, element, remove 方法;基于 java.util.AbstractCollection,提供了 containsAll, isEmpty, removeAll, retainAll 方法;同时也实现了 java.lang.Object 的相关方法。此外,它还是 java.util.concurrent.BlockingQueue 和 java.util.Queue 的实现者,提供了 add 和 element, remove 等接口方法,以及 java.util.Collection 的一些基本操作方法。
public class ArrayBlockingQueueextends AbstractQueueimplements BlockingQueue, java.io.Serializable一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。