declare namespace java { namespace util { namespace concurrent { /** * A bounded {@linkplain BlockingQueue blocking queue} backed by an * array. This queue orders elements FIFO (first-in-first-out). The * head of the queue is that element that has been on the * queue the longest time. The tail of the queue is that * element that has been on the queue the shortest time. New elements * are inserted at the tail of the queue, and the queue retrieval * operations obtain elements at the head of the queue. *
This is a classic "bounded buffer", in which a * fixed-sized array holds elements inserted by producers and * extracted by consumers. Once created, the capacity cannot be * changed. Attempts to {@code put} an element into a full queue * will result in the operation blocking; attempts to {@code take} an * element from an empty queue will similarly block. *
This class supports an optional fairness policy for ordering * waiting producer and consumer threads. By default, this ordering * is not guaranteed. However, a queue constructed with fairness set * to {@code true} grants threads access in FIFO order. Fairness * generally decreases throughput but reduces variability and avoids * starvation. *
This class and its iterator implement all of the * optional methods of the {@link Collection} and {@link * Iterator} interfaces. *
This class is a member of the
*
* Java Collections Framework.
* @since 1.5
* @author Doug Lea
* @param Note that you cannot always tell if an attempt to insert
* an element will succeed by inspecting {@code remainingCapacity}
* because it may be the case that another thread is about to
* insert or remove an element.
*/
// @ts-ignore
public remainingCapacity(): number /*int*/
/**
* Removes a single instance of the specified element from this queue,
* if it is present. More formally, removes an element {@code e} such
* that {@code o.equals(e)}, if this queue contains one or more such
* elements.
* Returns {@code true} if this queue contained the specified element
* (or equivalently, if this queue changed as a result of the call).
* Removal of interior elements in circular array based queues
* is an intrinsically slow and disruptive operation, so should
* be undertaken only in exceptional circumstances, ideally
* only when the queue is known not to be accessible by other
* threads.
* @param o element to be removed from this queue, if present
* @return {#code true} if this queue changed as a result of the call
*/
// @ts-ignore
public remove(o: java.lang.Object | any): boolean
/**
* Returns {@code true} if this queue contains the specified element.
* More formally, returns {@code true} if and only if this queue contains
* at least one element {@code e} such that {@code o.equals(e)}.
* @param o object to be checked for containment in this queue
* @return {#code true} if this queue contains the specified element
*/
// @ts-ignore
public contains(o: java.lang.Object | any): boolean
/**
* Returns an array containing all of the elements in this queue, in
* proper sequence.
* The returned array will be "safe" in that no references to it are
* maintained by this queue. (In other words, this method must allocate
* a new array). The caller is thus free to modify the returned array.
* This method acts as bridge between array-based and collection-based
* APIs.
* @return an array containing all of the elements in this queue
*/
// @ts-ignore
public toArray(): any[]
/**
* Returns an array containing all of the elements in this queue, in
* proper sequence; the runtime type of the returned array is that of
* the specified array. If the queue fits in the specified array, it
* is returned therein. Otherwise, a new array is allocated with the
* runtime type of the specified array and the size of this queue.
* If this queue fits in the specified array with room to spare
* (i.e., the array has more elements than this queue), the element in
* the array immediately following the end of the queue is set to
* {@code null}.
* Like the {@link #toArray()} method, this method acts as bridge between
* array-based and collection-based APIs. Further, this method allows
* precise control over the runtime type of the output array, and may,
* under certain circumstances, be used to save allocation costs.
* Suppose {@code x} is a queue known to contain only strings.
* The following code can be used to dump the queue into a newly
* allocated array of {@code String}:
* The returned iterator is
* weakly consistent.
* @return an iterator over the elements in this queue in proper sequence
*/
// @ts-ignore
public iterator(): java.util.Iterator The returned spliterator is
* weakly consistent.
* The {@code Spliterator} reports {@link Spliterator#CONCURRENT},
* {@link Spliterator#ORDERED}, and {@link Spliterator#NONNULL}.
* @implNote The {#code Spliterator} implements {@code trySplit} to permit limited
* parallelism.
* @return a {#code Spliterator} over the elements in this queue
* @since 1.8
*/
// @ts-ignore
public spliterator(): java.util.Spliterator {@code String[] y = x.toArray(new String[0]);}
* Note that {@code toArray(new Object[0])} is identical in function to
* {@code toArray()}.
* @param a the array into which the elements of the queue are to
* be stored, if it is big enough; otherwise, a new array of the
* same runtime type is allocated for this purpose
* @return an array containing all of the elements in this queue
* @throws ArrayStoreException if the runtime type of the specified array
* is not a supertype of the runtime type of every element in
* this queue
* @throws NullPointerException if the specified array is null
*/
// @ts-ignore
public toArray