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, remove
contains, containsAll, isEmpty, removeAll, retainAll, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
contains
addAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream
public 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.