|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util.concurrent
类 DelayQueue<E extends Delayed>
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java.util.concurrent.DelayQueue<E>
- 类型参数:
-
E
- 在此 collection 中保持的元素类型
- 所有已实现的接口:
- Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<E>
-
public class DelayQueue<E extends Delayed>
- extends AbstractQueue<E>
- implements BlockingQueue<E>
Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部 是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。当一个元素的 getDelay(TimeUnit.NANOSECONDS) 方法返回一个小于或等于零的值时,则出现期满。此队列不允许使用 null 元素。
此类及其迭代器实现了 Collection
和 Iterator
接口的所有可选 方法。
此类是 Java Collections Framework 的成员。
- 从以下版本开始:
- 1.5
构造方法摘要 | |
---|---|
DelayQueue() 创建一个最初为空的新 DelayQueue。 |
|
DelayQueue(Collection<? extends E> c) 创建一个最初包含 Delayed 实例的给定 collection 中的元素的 DelayQueue。 |
方法摘要 | ||
---|---|---|
boolean |
add(E o) 将指定元素添加到此队列中。 |
|
void |
clear() 自动移除此延迟队列中的所有元素。 |
|
int |
drainTo(Collection<? super E> c) 移除此队列中所有可用的元素,并将它们添加到给定 collection 中。 |
|
int |
drainTo(Collection<? super E> c, int maxElements) 最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。 |
|
Iterator<E> |
iterator() 返回在此队列中的元素上进行迭代的迭代器。 |
|
boolean |
offer(E o) 将指定元素插入到此延迟队列中。 |
|
boolean |
offer(E o, long timeout, TimeUnit unit) 将指定元素插入到此延迟队列中。 |
|
E |
peek() 检索但不移除此队列的头部,如果此队列不存在未到期延迟的元素,则返回 null。 |
|
E |
poll() 检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则返回 null。 |
|
E |
poll(long timeout, TimeUnit unit) 检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则在到达指定的等待时间之前,一直等待(如果有必要)。 |
|
void |
put(E o) 将指定元素添加到此延迟队列中。 |
|
int |
remainingCapacity() 因为 DelayQueue 没有容量限制,所以它总是返回 Integer.MAX_VALUE。 |
|
boolean |
remove(Object o) 从此队列中移除指定元素的单个实例(如果存在)。 |
|
int |
size() 返回此 collection 中的元素数。 |
|
E |
take() 检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则等待它。 |
|
Object[] |
toArray() 返回包含此 collection 中所有元素的数组。 |
|
|
toArray(T[] array) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型是指定数组的类型。 |
从类 java.util.AbstractQueue 继承的方法 |
---|
addAll, element, remove |
从类 java.util.AbstractCollection 继承的方法 |
---|
contains, containsAll, isEmpty, removeAll, retainAll, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
从接口 java.util.Queue 继承的方法 |
---|
element, remove |
从接口 java.util.Collection 继承的方法 |
---|
addAll, contains, containsAll, equals, hashCode, isEmpty, removeAll, retainAll |
构造方法详细信息 |
---|
DelayQueue
public DelayQueue()
- 创建一个最初为空的新 DelayQueue。
DelayQueue
public DelayQueue(Collection<? extends E> c)
-
创建一个最初包含
Delayed
实例的给定 collection 中的元素的 DelayQueue。- 参数:
-
c
- collection - 抛出:
-
NullPointerException
- 如果 c 或者 collection 中的任何元素为 null
方法详细信息 |
---|
offer
public boolean offer(E o)
- 将指定元素插入到此延迟队列中。
-
- 参数:
-
o
- 要添加的元素 - 返回:
- true
- 抛出:
-
NullPointerException
- 如果指定的元素为 null。
put
public void put(E o)
- 将指定元素添加到此延迟队列中。由于该队列是无界的,所以此方法永远不会阻塞。
-
- 指定者:
-
接口
BlockingQueue<E extends Delayed>
中的put
-
- 参数:
-
o
- 要添加的元素 - 抛出:
-
NullPointerException
- 如果指定的元素为 null。
offer
public boolean offer(E o, long timeout, TimeUnit unit)
- 将指定元素插入到此延迟队列中。由于该队列是无界的,所以此方法永远不会阻塞。
-
- 指定者:
-
接口
BlockingQueue<E extends Delayed>
中的offer
-
- 参数:
-
o
- 要添加的元素 -
timeout
- 因为该方法永远不会阻塞,所以忽略此参数 -
unit
- 因为该方法永远不会阻塞,所以忽略此参数 - 返回:
- true
- 抛出:
-
NullPointerException
- 如果指定的元素为 null。
add
public boolean add(E o)
- 将指定元素添加到此队列中。
-
- 指定者:
-
接口
Collection<E extends Delayed>
中的add
- 指定者:
-
接口
BlockingQueue<E extends Delayed>
中的add
- 覆盖:
-
类
AbstractQueue<E extends Delayed>
中的add
-
- 参数:
-
o
- 要添加的元素 - 返回:
- true(按照 Collection.add 的常规协定)。
- 抛出:
-
NullPointerException
- 如果指定的元素为 null。
take
public E take() throws InterruptedException
- 检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则等待它。
-
- 指定者:
-
接口
BlockingQueue<E extends Delayed>
中的take
-
- 返回:
- 此队列的头部
- 抛出:
-
InterruptedException
- 如果等待时中断。
poll
public E poll(long timeout, TimeUnit unit) throws InterruptedException
- 检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则在到达指定的等待时间之前,一直等待(如果有必要)。
-
- 指定者:
-
接口
BlockingQueue<E extends Delayed>
中的poll
-
- 参数:
-
timeout
- 放弃前要等待的时间长度,以 unit 为时间单位 -
unit
- 确定如何解释 timeout 参数的 TimeUnit - 返回:
- 此队列的头部;如果在出现未到期延迟的元素之前超出了指定的等待时间,则返回 null。
- 抛出:
-
InterruptedException
- 如果在等待时被中断。