Java ArrayBlockingQueue 类

2025 年 1 月 7 日 | 阅读 3 分钟

ArrayBlockingQueue 是一个有界阻塞队列,它以 FIFO(先进先出)的顺序对元素进行排序。在此队列中,新元素被插入到队列的尾部,元素从队列的头部检索。

ArrayBlockingQueue 类实现了 Collection 和 Iterator 接口的所有可选方法,并且是 Java Collections Framework 的成员。

ArrayBlockingQueue 方法

方法描述
add()如果此方法将指定元素插入到此队列的尾部,则返回布尔值 true。
clear()此方法会自动移除此队列中的所有元素。
contains()如果此队列包含指定元素,则此方法返回布尔值 true。
drainTo()此方法移除所有可用元素或给定最多数量的元素,并将它们添加到集合中。
forEach()此方法对每个元素执行操作,直到所有元素都已处理完毕。
iterator()此方法以正确的顺序返回此队列中元素的迭代器。
offer()此方法将指定元素插入此队列的尾部,如果队列已满,则等待指定的等待时间直到有可用空间。
peek()此方法检索队列的头部,但不会移除它。
poll()此方法检索并移除此队列的头部。
put()此方法将指定元素插入此队列的尾部。
remainingCapacity()此方法返回此队列在不阻塞的情况下可以接受的元素容量。
remove()如果此方法包含指定元素,则移除该元素。
removeAll()此方法移除此队列中存在于指定集合中的所有元素。
removeIf()此方法移除此队列中满足给定谓词过滤器(predicate filter)的所有元素。
retainAll()此方法仅保留此队列中存在于指定集合中的元素。
size()此方法返回此队列中的元素数量。
spliterator()此方法返回此队列中元素的 spliterator。
toArray()此方法返回一个数组,其中包含此队列中所有按正确顺序排列的元素。
toString()此方法返回此集合的字符串表示形式。
take()此方法检索并移除 ArrayBlockingQueue 的第一个元素。

示例 1

输出

Elements :
Reema
Rahul
Rita
Ramesh
Gita
Geetanjali
queue.contains(reema) will return true

示例 2

输出

Size of the queue : 10
Queue = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Remaining capacity : 40
 Even number = [1, 3, 5, 7, 9]
Remaining capacity : 45
Head of the element : 1
Head of the element : 3
Queue : [3, 5, 7, 9]