public class QueueUtils extends Object
Queue
instances.Modifier and Type | Field and Description |
---|---|
static Queue |
EMPTY_QUEUE
An empty unmodifiable queue.
|
Modifier and Type | Method and Description |
---|---|
static <E> Queue<E> |
emptyQueue()
Get an empty
Queue . |
static <E> Queue<E> |
predicatedQueue(Queue<E> queue,
Predicate<? super E> predicate)
Returns a predicated (validating) queue backed by the given queue.
|
static <E> Queue<E> |
synchronizedQueue(Queue<E> queue)
Returns a synchronized (thread-safe) queue backed by the given queue.
|
static <E> Queue<E> |
transformingQueue(Queue<E> queue,
Transformer<? super E,? extends E> transformer)
Returns a transformed queue backed by the given queue.
|
static <E> Queue<E> |
unmodifiableQueue(Queue<? extends E> queue)
Returns an unmodifiable queue backed by the given queue.
|
public static final Queue EMPTY_QUEUE
public static <E> Queue<E> synchronizedQueue(Queue<E> queue)
It is imperative that the user manually synchronize on the returned queue when iterating over it:
Queue queue = QueueUtils.synchronizedQueue(new CircularFifoQueue()); ... synchronized(queue) { Iterator i = queue.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); } }Failure to follow this advice may result in non-deterministic behavior.
E
- the element typequeue
- the queue to synchronize, must not be nullNullPointerException
- if the queue is nullpublic static <E> Queue<E> unmodifiableQueue(Queue<? extends E> queue)
E
- the type of the elements in the queuequeue
- the queue to make unmodifiable, must not be nullNullPointerException
- if the queue is nullpublic static <E> Queue<E> predicatedQueue(Queue<E> queue, Predicate<? super E> predicate)
Only objects that pass the test in the given predicate can be added to the queue. Trying to add an invalid object results in an IllegalArgumentException. It is important not to use the original queue after invoking this method, as it is a backdoor for adding invalid objects.
E
- the type of the elements in the queuequeue
- the queue to predicate, must not be nullpredicate
- the predicate used to evaluate new elements, must not be nullNullPointerException
- if the queue or predicate is nullpublic static <E> Queue<E> transformingQueue(Queue<E> queue, Transformer<? super E,? extends E> transformer)
Each object is passed through the transformer as it is added to the Queue. It is important not to use the original queue after invoking this method, as it is a backdoor for adding untransformed objects.
Existing entries in the specified queue will not be transformed.
If you want that behaviour, see TransformedQueue.transformedQueue(java.util.Queue<E>, org.apache.commons.collections4.Transformer<? super E, ? extends E>)
.
E
- the type of the elements in the queuequeue
- the queue to predicate, must not be nulltransformer
- the transformer for the queue, must not be nullNullPointerException
- if the queue or transformer is nullpublic static <E> Queue<E> emptyQueue()
Queue
.E
- the type of the elements in the queueQueue
Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.