E - 在这个集合中保存的元素的类型 
       public class LinkedTransferQueue<E> extends AbstractQueue<E> implements TransferQueue<E>, Serializable
TransferQueue 。 
       这个队列相对于任何给定的生产者订购元素FIFO(先进先出)。 
       队列的头部是那些已经排队的元素是一些生产者的最长时间。 
       队列的尾部是那些已经在队列上的元素是一些生产者的最短时间。 
        请注意,与大多数集合不同, size方法不是一个常时操作。 由于这些队列的异步性质,确定当前元素数量需要遍历元素,因此如果在遍历期间修改此集合,则可能会报告不准确的结果。 此外,该批量操作addAll , removeAll , retainAll , containsAll , equals和toArray被原子方式执行, 不能保证。 例如,一个迭代与同时操作addAll操作可能只查看一些所添加的元素。 
 该类及其迭代器实现了Collection和Iterator接口的所有可选方法。 
 存储器一致性效果:当与其他并发集合,事先将物体放置成在一个线程动作LinkedTransferQueue happen-before到该元素的从访问或移除后续动作LinkedTransferQueue在另一个线程。 
| Constructor and Description | 
|---|
| LinkedTransferQueue()
              创建一个最初空的 
              LinkedTransferQueue。 | 
| LinkedTransferQueue(Collection<? extends E> c)
              创建一个 
              LinkedTransferQueue最初包含给定集合的元素,以集合的迭代器的遍历顺序添加。 | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | add(E e)
              在该队列的尾部插入指定的元素。 
             | 
| boolean | contains(Object o)
              如果此队列包含指定的元素,则返回 
              true。 | 
| int | drainTo(Collection<? super E> c)
              从该队列中删除所有可用的元素,并将它们添加到给定的集合中。 
             | 
| int | drainTo(Collection<? super E> c, int maxElements)
              最多从该队列中删除给定数量的可用元素,并将它们添加到给定的集合中。 
             | 
| int | getWaitingConsumerCount()
              返回通过 
              BlockingQueue.take()或定时器poll等待接收元素的消费者数量的估计。 | 
| boolean | hasWaitingConsumer() | 
| boolean | isEmpty()
              如果此队列不包含元素,则返回 
              true。 | 
| 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,因为LinkedTransferQueue没有容量限制。 | 
| boolean | remove(Object o)
              从该队列中删除指定元素的单个实例(如果存在)。 
             | 
| int | size()
              返回此队列中的元素数。 
             | 
| Spliterator<E> | spliterator() 
             返回此队列中的元素 Spliterator。 | 
| E | take()
              检索并删除此队列的头,如有必要,等待元素可用。 
             | 
| void | transfer(E e)
              将元素转移给消费者,如有必要,等待。 
             | 
| boolean | tryTransfer(E e)
              如果可能的话,将元件立即转移给等待的消费者。 
             | 
| boolean | tryTransfer(E e, long timeout, TimeUnit unit)
              如果可以在超时过程之前将元素传送给消费者。 
             | 
addAll, clear, element, removecontainsAll, removeAll, retainAll, toArray, toArray, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddAll, clear, containsAll, equals, hashCode, parallelStream, removeAll, removeIf, retainAll, stream, toArray, toArraypublic LinkedTransferQueue()
LinkedTransferQueue 。 
          public LinkedTransferQueue(Collection<? extends E> c)
LinkedTransferQueue最初包含给定集合的元素,以集合的迭代器的遍历顺序添加。 
          c - 最初包含的元素的集合 
           NullPointerException - 如果指定的集合或其任何元素为空 
           public Spliterator<E> spliterator()
Spliterator 。 
           返回的拼接器是weakly consistent 。
 该Spliterator报告Spliterator.CONCURRENT , Spliterator.ORDERED和Spliterator.NONNULL 。 
spliterator在接口 
            Iterable<E> 
           spliterator在界面 
            Collection<E> 
           Spliterator实现 
            trySplit以允许有限的并行性。 
           Spliterator在这个队列中的元素 
           public void put(E e)
put在界面 
            BlockingQueue<E> 
           e - 要添加的元素 
           NullPointerException - 如果指定的元素为空 
           public boolean offer(E e, long timeout, TimeUnit unit)
false 。 
          offer在界面 
            BlockingQueue<E> 
           e - 要添加的元素 
           timeout - 放弃等待多久,单位为 
            unit 
           unit - a 
            TimeUnit确定如何解释 
            timeout参数 
           true (由 
            BlockingQueue.offer指定 ) 
           NullPointerException - 如果指定的元素为空 
           public boolean offer(E e)
false 。 
          offer在界面 
            BlockingQueue<E> 
           offer在界面 
            Queue<E> 
           e - 要添加的元素 
           true (由 
            Queue.offer(E)指定 ) 
           NullPointerException - 如果指定的元素为空 
           public boolean add(E e)
IllegalStateException或返回false 。 
          add在界面 
            Collection<E> 
           add在界面 
            BlockingQueue<E> 
           add在界面 
            Queue<E> 
           add在类别 
            AbstractQueue<E> 
           e - 要添加的元素 
           true (由 
            Collection.add(E)指定 ) 
           NullPointerException - 如果指定的元素为空 
           public boolean tryTransfer(E e)
tryTransfer在界面 
            TransferQueue<E> 
           e - 要传输的元素 
           true如果元素被转移,否则 
            false 
           NullPointerException - 如果指定的元素为空 
           public void transfer(E e) throws InterruptedException
 更准确地说,如果存在已经等待接收消费者的消费者( take()或定时器poll ),则会立即传输指定的元素,否则,将指定的元素插入到该队列的尾部,并等待消费者收到该元素。 
transfer在界面 
            TransferQueue<E> 
           e - 要传输的元素 
           NullPointerException - 如果指定的元素为空 
           InterruptedException - 如果在等待时中断,在这种情况下元素不会被排入队列 
           public boolean tryTransfer(E e, long timeout, TimeUnit unit) throws InterruptedException
 更确切地说,如果存在已经等待接收消费者的消费者( take()或定时器poll ),请立即转移指定的元素,否则将其指定的元素插入到该队列尾部,并等待消费者收到该元素,返回false如果在元素可以传输之前经过了指定的等待时间。 
tryTransfer在界面 
            TransferQueue<E> 
           e - 要传输的元素 
           timeout - 放弃等待多久,单位为 
            unit 
           unit - a 
            TimeUnit确定如何解释 
            timeout参数 
           true如果成功,或 
            false如果在完成之前经过指定的等待时间,在这种情况下,元素不会排入队列 
           NullPointerException - 如果指定的元素为空 
           InterruptedException - 如果在等待时中断,在这种情况下元素不会被排入队列 
           public E take() throws InterruptedException
BlockingQueue复制 
          take在界面 
            BlockingQueue<E> 
           InterruptedException - 如果等待中断 
           public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue复制 
          poll在界面 
            BlockingQueue<E> 
           timeout - 放弃等待多久,以 
            unit为单位 
           unit - a 
            TimeUnit确定如何解释 
            timeout参数 
           null如果在元素可用之前经过指定的等待时间 
           InterruptedException - 如果在等待时中断 
           public int drainTo(Collection<? super E> c)
BlockingQueue复制 
          c添加元素时遇到的c可能会导致元素在抛出关联的异常时既不在两个集合中,也可能是两个集合。 
           尝试将队列排入自身会导致IllegalArgumentException 。 
           此外,如果在操作进行中修改了指定的集合,则此操作的行为是未定义的。 
          drainTo在界面 
            BlockingQueue<E> 
           c - 将元素传输到的集合 
           NullPointerException - 如果指定的集合为空 
           IllegalArgumentException - 如果指定的集合是此队列,或此队列的某个元素的某些属性阻止将其添加到指定的集合 
           public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueue复制 
          c添加元素时遇到的c可能会导致在抛出关联的异常时,元素既不在两个集合中,也可能不是两个集合。 
           尝试将队列排入自身导致IllegalArgumentException 。 
           此外,如果在操作进行中修改了指定的集合,则此操作的行为是未定义的。 
          drainTo在界面 
            BlockingQueue<E> 
           c - 传输元素的集合 
           maxElements - 要传输的元素的最大数量 
           NullPointerException - 如果指定的集合为空 
           IllegalArgumentException - 如果指定的集合是此队列,或此队列的某个元素的某些属性阻止将其添加到指定的集合 
           public Iterator<E> iterator()
iterator在界面 
            Iterable<E> 
           iterator在界面 
            Collection<E> 
           iterator在类别 
            AbstractCollection<E> 
           public boolean isEmpty()
true 。 
          isEmpty在界面 
            Collection<E> 
           isEmpty在类别 
            AbstractCollection<E> 
           true如果此队列不包含元素 
           public boolean hasWaitingConsumer()
TransferQueue复制 
          true如果存在至少一个消费者等待经由以接收元件BlockingQueue.take()或定时poll 。 
           返回值代表一时的状态。 
          hasWaitingConsumer在界面 
            TransferQueue<E> 
           true如果有至少一个等待消费者 
           public int size()
Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE 。 
           请注意,与大多数集合不同,此方法不是一个常时操作。 由于这些队列的异步性质,确定当前的元素数需要O(n)遍历。
size在界面 
            Collection<E> 
           size在类别 
            AbstractCollection<E> 
           public int getWaitingConsumerCount()
TransferQueue复制 
          BlockingQueue.take()或定时器poll等待接收元素的消费者数量的估计。 
           返回值是一个近似的瞬间状态,如果消费者已经完成或放弃等待,这可能是不准确的。 
           该值可能对监控和启发式有用,但不适用于同步控制。 
           这个方法的实现可能是明显比那些慢TransferQueue.hasWaitingConsumer() 。 
          getWaitingConsumerCount在界面 
            TransferQueue<E> 
           public boolean remove(Object o)
e ,使得o.equals(e) (如果该队列包含一个或多个这样的元素)。 
           如果此队列包含指定的元素(或等效地,如果此队列作为调用的结果而更改),则返回true 。 
          remove在界面 
            Collection<E> 
           remove在界面 
            BlockingQueue<E> 
           remove在类别 
            AbstractCollection<E> 
           o - 要从此队列中删除的元素(如果存在) 
           true如果此队列由于调用而更改 
           public boolean contains(Object o)
true 。 
           更正式地,返回true当且仅当该队列至少包含一个元素e ,使得o.equals(e) 。 
          contains在界面 
            Collection<E> 
           contains在界面 
            BlockingQueue<E> 
           contains在类别 
            AbstractCollection<E> 
           o - 要检查此队列中的遏制的对象 
           true如果此队列包含指定的元素 
           public int remainingCapacity()
Integer.MAX_VALUE因为 
           LinkedTransferQueue是不容量限制。 
          remainingCapacity在界面 
            BlockingQueue<E> 
           Integer.MAX_VALUE (由 
            BlockingQueue.remainingCapacity规定 ) 
            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.