E -元素举行此集合中的类型
public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E>
Delayed元素无界
blocking queue,其中一个元素只可以当其延迟已过期。队列的头部是
Delayed元的延迟过期遥远的过去。如果没有延迟已过期,没有头和
poll将返回
null。到期时发生的一个元素的
getDelay(TimeUnit.NANOSECONDS)方法返回的值小于或等于零。即使未到期的元素不能使用
take或
poll移除,他们否则视为正常的元素。例如,在
size方法返回的过期和未到期的元素计数。此队列不允许空元素。
这个类和它的迭代器实现所有的可选方法的Collection和Iterator接口。方法iterator()提供的迭代器不能保证导线的DelayQueue元素在任何特定的顺序。
这个班的一员 Java Collections Framework。
| Constructor and Description |
|---|
DelayQueue()
创建一个新的
DelayQueue,最初是空的。
|
DelayQueue(Collection<? extends E> c)
创建一个
DelayQueue最初的含
Delayed实例给定集合的元素。
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E e)
将指定的元素插入到这个延迟队列中。
|
void |
clear()
自动删除所有的这种延迟队列元素。
|
int |
drainTo(Collection<? super E> c)
从这个队列中删除所有可用的元素,并将它们添加到给定的集合中。
|
int |
drainTo(Collection<? super E> c, int maxElements)
从这个队列中移除给定数量的可用元素,并将它们添加到给定的集合中。
|
Iterator<E> |
iterator()
返回所有元素的迭代器(都是过期的和未过期的)在这个队列。
|
boolean |
offer(E e)
将指定的元素插入到这个延迟队列中。
|
boolean |
offer(E e, long timeout, TimeUnit unit)
将指定的元素插入到这个延迟队列中。
|
E |
peek()
检索,但不删除,这个队列头,或返回
null如果队列为空。
|
E |
poll()
检索并移除此队列的头,或返回
null如果队列中没有元素与过期的延迟。
|
E |
poll(long timeout, TimeUnit unit)
检索并删除此队列的头,在必要时等待,直到该队列上有一个过期的延迟的元素,或指定的等待时间过期。
|
void |
put(E e)
将指定的元素插入到这个延迟队列中。
|
int |
remainingCapacity()
总是返回
Integer.MAX_VALUE因为
DelayQueue没有容量限制。
|
boolean |
remove(Object o)
从这个队列中移除指定元素的一个实例,如果它是存在的,是否已经过期了。
|
int |
size()
返回此集合中的元素的数目。
|
E |
take()
检索并删除此队列的头,在必要时等待,直到该队列上有一个过期的延迟的元素。
|
Object[] |
toArray()
返回一个包含此队列中所有元素的数组。
|
<T> T[] |
toArray(T[] a)
返回包含此队列中的所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。
|
addAll, element, removecontains, containsAll, isEmpty, removeAll, retainAll, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontainsaddAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, streampublic DelayQueue()
DelayQueue,最初是空的。
public DelayQueue(Collection<? extends E> c)
DelayQueue最初的含
Delayed实例给定集合的元素。
c -最初包含元素的集合
NullPointerException -如果指定集合或其任何元素都是空的
public boolean add(E e)
add 接口
Collection<E extends Delayed>
add 接口
BlockingQueue<E extends Delayed>
add 接口
Queue<E extends Delayed>
add 方法重写,继承类
AbstractQueue<E extends Delayed>
e -元素添加
true(由
Collection.add(E)指定)
NullPointerException -如果指定元素为null
public boolean offer(E e)
offer 接口
BlockingQueue<E extends Delayed>
offer 接口
Queue<E extends Delayed>
e -元素添加
true
NullPointerException -如果指定元素为null
public void put(E e)
put 接口
BlockingQueue<E extends Delayed>
e -元素添加
NullPointerException -如果指定元素为null
public boolean offer(E e, long timeout, TimeUnit unit)
offer 接口
BlockingQueue<E extends Delayed>
e -元素添加
timeout -忽略此参数为方法不块
unit -忽略此参数为方法不块
true
NullPointerException -如果指定元素为null
public E poll()
null如果队列中没有元素与过期的延迟。
public E take() throws InterruptedException
take 接口
BlockingQueue<E extends Delayed>
InterruptedException如果中断等待
public E poll(long timeout, TimeUnit unit) throws InterruptedException
poll 接口
BlockingQueue<E extends Delayed>
timeout -多久才放弃等待,在单位
unit
unit -
TimeUnit确定如何解释
timeout参数
null如果指定的等待时间过去之前一元的过期延迟可用
InterruptedException如果中断等待
public E peek()
null如果队列为空。不像
poll,如果没有过期的元素在队列中是可用的,此方法返回的元素,将于明年,如果存在。
public int size()
Collection
size 接口
Collection<E extends Delayed>
size 方法重写,继承类
AbstractCollection<E extends Delayed>
public int drainTo(Collection<? super E> c)
BlockingQueue
c添加元素可能会导致元素在没有遭遇过失败,或集合时相关的异常被抛出。试图排队列本身造成
IllegalArgumentException。此外,当操作正在进行中时,此操作的行为是不确定的,如果指定的集合被修改了。
drainTo 接口
BlockingQueue<E extends Delayed>
c -收集传递元素
UnsupportedOperationException如果添加元素不按指定集合的支持
ClassCastException -如果该队列的元素类型阻止其加入指定集合
NullPointerException -如果指定集合为空
IllegalArgumentException -如果指定集合的队列,该队列或一个元素的一些特性可以防止它被添加到指定的集合
public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueue
c添加元素可能会导致元素在没有遭遇过失败,或集合时相关的异常被抛出。试图排队列本身造成
IllegalArgumentException。此外,当操作正在进行中时,此操作的行为是不确定的,如果指定的集合被修改了。
drainTo 接口
BlockingQueue<E extends Delayed>
c -收集传递元素
maxElements -元素的最大数量的转移
UnsupportedOperationException如果添加元素不按指定集合的支持
ClassCastException -如果该队列的元素类型阻止其加入指定集合
NullPointerException -如果指定集合为空
IllegalArgumentException -如果指定集合的队列,该队列或一个元素的一些特性可以防止它被添加到指定的集合
public void clear()
clear 接口
Collection<E extends Delayed>
clear 方法重写,继承类
AbstractQueue<E extends Delayed>
public int remainingCapacity()
Integer.MAX_VALUE因为
DelayQueue没有容量限制。
remainingCapacity 接口
BlockingQueue<E extends Delayed>
Integer.MAX_VALUE
public Object[] toArray()
返回的数组将是“安全”的,在这个队列中没有引用它的引用。(换句话说,这种方法必须分配一个新的数组)。因此,调用方可以自由修改返回的数组。
此方法作为基于数组和基于集合的原料药之间的桥梁。
toArray 接口
Collection<E extends Delayed>
toArray 方法重写,继承类
AbstractCollection<E extends Delayed>
public <T> T[] toArray(T[] a)
如果此队列符合指定数组中剩余的空间(即数组有比这更多的元素,在队列)阵列立即结束的队列的元素设置为null。
像toArray()方法,该方法作为之间的桥梁,基于阵列和基于集合API。此外,该方法允许对输出数组的运行时类型的精确控制,并在某些情况下,可用于节省分配成本。
下面的代码可以用来将延迟队列到新分配的数组Delayed:
Delayed[] a = q.toArray(new Delayed[0]);注意
toArray(new Object[0])是相同的功能,
toArray()。
toArray 接口
Collection<E extends Delayed>
toArray 方法重写,继承类
AbstractCollection<E extends Delayed>
T -数组的运行时类型包含集合
a -进入队列的元素被存储数组,如果它足够大;否则,一个新的运行时类型相同的数组分配给这个目的
ArrayStoreException -如果指定数组的运行时类型不是超队伍中每个元素运行时类型
NullPointerException -如果指定的数组是空的
public boolean remove(Object o)
remove 接口
Collection<E extends Delayed>
remove 接口
BlockingQueue<E extends Delayed>
remove 方法重写,继承类
AbstractCollection<E extends Delayed>
o元要从集合中删除,如果存在
public Iterator<E> iterator()
返回的迭代器是weakly consistent。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.