com.google.common.collect
Class Queues
- java.lang.Object
-
- com.google.common.collect.Queues
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static <E> intdrain(java.util.concurrent.BlockingQueue<E> q, java.util.Collection<? super E> buffer, int numElements, long timeout, java.util.concurrent.TimeUnit unit)Drains the queue asBlockingQueue.drainTo(Collection, int), but if the requestednumElementselements are not available, it will wait for them up to the specified timeout.static <E> intdrainUninterruptibly(java.util.concurrent.BlockingQueue<E> q, java.util.Collection<? super E> buffer, int numElements, long timeout, java.util.concurrent.TimeUnit unit)Drains the queue as drain(BlockingQueue, Collection, int, long, TimeUnit), but with a different behavior in case it is interrupted while waiting.static <E> java.util.concurrent.ArrayBlockingQueue<E>newArrayBlockingQueue(int capacity)Creates an emptyArrayBlockingQueueinstance.static <E> java.util.ArrayDeque<E>newArrayDeque()Creates an emptyArrayDequeinstance.static <E> java.util.ArrayDeque<E>newArrayDeque(java.lang.Iterable<? extends E> elements)Creates anArrayDequeinstance containing the given elements.static <E> java.util.concurrent.ConcurrentLinkedQueue<E>newConcurrentLinkedQueue()Creates an emptyConcurrentLinkedQueueinstance.static <E> java.util.concurrent.ConcurrentLinkedQueue<E>newConcurrentLinkedQueue(java.lang.Iterable<? extends E> elements)Creates anConcurrentLinkedQueueinstance containing the given elements.static <E> java.util.concurrent.LinkedBlockingDeque<E>newLinkedBlockingDeque()Creates an emptyLinkedBlockingDequeinstance.static <E> java.util.concurrent.LinkedBlockingDeque<E>newLinkedBlockingDeque(int capacity)Creates aLinkedBlockingDequewith the given (fixed) capacity.static <E> java.util.concurrent.LinkedBlockingDeque<E>newLinkedBlockingDeque(java.lang.Iterable<? extends E> elements)Creates anLinkedBlockingDequeinstance containing the given elements.static <E> java.util.concurrent.LinkedBlockingQueue<E>newLinkedBlockingQueue()Creates an emptyLinkedBlockingQueueinstance.static <E> java.util.concurrent.LinkedBlockingQueue<E>newLinkedBlockingQueue(int capacity)Creates aLinkedBlockingQueuewith the given (fixed) capacity.static <E> java.util.concurrent.LinkedBlockingQueue<E>newLinkedBlockingQueue(java.lang.Iterable<? extends E> elements)Creates anLinkedBlockingQueueinstance containing the given elements.static <E> java.util.concurrent.PriorityBlockingQueue<E>newPriorityBlockingQueue()Creates an emptyPriorityBlockingQueueinstance.static <E> java.util.concurrent.PriorityBlockingQueue<E>newPriorityBlockingQueue(java.lang.Iterable<? extends E> elements)Creates anPriorityBlockingQueueinstance containing the given elements.static <E> java.util.PriorityQueue<E>newPriorityQueue()Creates an emptyPriorityQueueinstance.static <E> java.util.PriorityQueue<E>newPriorityQueue(java.lang.Iterable<? extends E> elements)Creates anPriorityQueueinstance containing the given elements.static <E> java.util.concurrent.SynchronousQueue<E>newSynchronousQueue()Creates an emptySynchronousQueueinstance.static <E> java.util.Queue<E>synchronizedQueue(java.util.Queue<E> queue)Returns a synchronized (thread-safe) queue backed by the specified queue.
-
-
-
Method Detail
-
newArrayBlockingQueue
public static <E> java.util.concurrent.ArrayBlockingQueue<E> newArrayBlockingQueue(int capacity)
Creates an emptyArrayBlockingQueueinstance.- Returns:
- a new, empty
ArrayBlockingQueue
-
newArrayDeque
public static <E> java.util.ArrayDeque<E> newArrayDeque()
Creates an emptyArrayDequeinstance.- Returns:
- a new, empty
ArrayDeque - Since:
- 12.0
-
newArrayDeque
public static <E> java.util.ArrayDeque<E> newArrayDeque(java.lang.Iterable<? extends E> elements)
Creates anArrayDequeinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
ArrayDequecontaining those elements - Since:
- 12.0
-
newConcurrentLinkedQueue
public static <E> java.util.concurrent.ConcurrentLinkedQueue<E> newConcurrentLinkedQueue()
Creates an emptyConcurrentLinkedQueueinstance.- Returns:
- a new, empty
ConcurrentLinkedQueue
-
newConcurrentLinkedQueue
public static <E> java.util.concurrent.ConcurrentLinkedQueue<E> newConcurrentLinkedQueue(java.lang.Iterable<? extends E> elements)
Creates anConcurrentLinkedQueueinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
ConcurrentLinkedQueuecontaining those elements
-
newLinkedBlockingDeque
public static <E> java.util.concurrent.LinkedBlockingDeque<E> newLinkedBlockingDeque()
Creates an emptyLinkedBlockingDequeinstance.- Returns:
- a new, empty
LinkedBlockingDeque - Since:
- 12.0
-
newLinkedBlockingDeque
public static <E> java.util.concurrent.LinkedBlockingDeque<E> newLinkedBlockingDeque(int capacity)
Creates aLinkedBlockingDequewith the given (fixed) capacity.- Parameters:
capacity- the capacity of this deque- Returns:
- a new, empty
LinkedBlockingDeque - Throws:
java.lang.IllegalArgumentException- ifcapacityis less than 1- Since:
- 12.0
-
newLinkedBlockingDeque
public static <E> java.util.concurrent.LinkedBlockingDeque<E> newLinkedBlockingDeque(java.lang.Iterable<? extends E> elements)
Creates anLinkedBlockingDequeinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
LinkedBlockingDequecontaining those elements - Since:
- 12.0
-
newLinkedBlockingQueue
public static <E> java.util.concurrent.LinkedBlockingQueue<E> newLinkedBlockingQueue()
Creates an emptyLinkedBlockingQueueinstance.- Returns:
- a new, empty
LinkedBlockingQueue
-
newLinkedBlockingQueue
public static <E> java.util.concurrent.LinkedBlockingQueue<E> newLinkedBlockingQueue(int capacity)
Creates aLinkedBlockingQueuewith the given (fixed) capacity.- Parameters:
capacity- the capacity of this queue- Returns:
- a new, empty
LinkedBlockingQueue - Throws:
java.lang.IllegalArgumentException- ifcapacityis less than 1
-
newLinkedBlockingQueue
public static <E> java.util.concurrent.LinkedBlockingQueue<E> newLinkedBlockingQueue(java.lang.Iterable<? extends E> elements)
Creates anLinkedBlockingQueueinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
LinkedBlockingQueuecontaining those elements
-
newPriorityBlockingQueue
public static <E> java.util.concurrent.PriorityBlockingQueue<E> newPriorityBlockingQueue()
Creates an emptyPriorityBlockingQueueinstance.- Returns:
- a new, empty
PriorityBlockingQueue
-
newPriorityBlockingQueue
public static <E> java.util.concurrent.PriorityBlockingQueue<E> newPriorityBlockingQueue(java.lang.Iterable<? extends E> elements)
Creates anPriorityBlockingQueueinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
PriorityBlockingQueuecontaining those elements
-
newPriorityQueue
public static <E> java.util.PriorityQueue<E> newPriorityQueue()
Creates an emptyPriorityQueueinstance.- Returns:
- a new, empty
PriorityQueue
-
newPriorityQueue
public static <E> java.util.PriorityQueue<E> newPriorityQueue(java.lang.Iterable<? extends E> elements)
Creates anPriorityQueueinstance containing the given elements.- Parameters:
elements- the elements that the queue should contain, in order- Returns:
- a new
PriorityQueuecontaining those elements
-
newSynchronousQueue
public static <E> java.util.concurrent.SynchronousQueue<E> newSynchronousQueue()
Creates an emptySynchronousQueueinstance.- Returns:
- a new, empty
SynchronousQueue
-
drain
@Beta public static <E> int drain(java.util.concurrent.BlockingQueue<E> q, java.util.Collection<? super E> buffer, int numElements, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
Drains the queue asBlockingQueue.drainTo(Collection, int), but if the requestednumElementselements are not available, it will wait for them up to the specified timeout.- Parameters:
q- the blocking queue to be drainedbuffer- where to add the transferred elementsnumElements- the number of elements to be waited fortimeout- how long to wait before giving up, in units ofunitunit- aTimeUnitdetermining how to interpret the timeout parameter- Returns:
- the number of elements transferred
- Throws:
java.lang.InterruptedException- if interrupted while waiting
-
drainUninterruptibly
@Beta public static <E> int drainUninterruptibly(java.util.concurrent.BlockingQueue<E> q, java.util.Collection<? super E> buffer, int numElements, long timeout, java.util.concurrent.TimeUnit unit)
Drains the queue as drain(BlockingQueue, Collection, int, long, TimeUnit), but with a different behavior in case it is interrupted while waiting. In that case, the operation will continue as usual, and in the end the thread's interruption status will be set (noInterruptedExceptionis thrown).- Parameters:
q- the blocking queue to be drainedbuffer- where to add the transferred elementsnumElements- the number of elements to be waited fortimeout- how long to wait before giving up, in units ofunitunit- aTimeUnitdetermining how to interpret the timeout parameter- Returns:
- the number of elements transferred
-
synchronizedQueue
@Beta public static <E> java.util.Queue<E> synchronizedQueue(java.util.Queue<E> queue)
Returns a synchronized (thread-safe) queue backed by the specified queue. In order to guarantee serial access, it is critical that all access to the backing queue is accomplished through the returned queue.It is imperative that the user manually synchronize on the returned queue when accessing the queue's iterator:
Failure to follow this advice may result in non-deterministic behavior.Queue<E> queue = Queues.synchronizedQueue(MinMaxPriorityQueue<E>.create()); ... queue.add(element); // Needn't be in synchronized block ... synchronized (queue) { // Must synchronize on queue! Iterator<E> i = queue.iterator(); // Must be in synchronized block while (i.hasNext()) { foo(i.next()); } }The returned queue will be serializable if the specified queue is serializable.
- Parameters:
queue- the queue to be wrapped in a synchronized view- Returns:
- a synchronized view of the specified queue
- Since:
- 14.0
-
-
DMelt 3.0 © DataMelt by jWork.ORG