Module  java.base
软件包  java.util.concurrent

Interface BlockingDeque<E>

    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      boolean add​(E e)
      将指定的元素插入由此deque(换句话说,在该deque的尾部)表示的队列中,如果可以立即执行此操作而不违反容量限制, true在成功时返回 true ,如果当前没有可用空间,则抛出 IllegalStateException
      void addFirst​(E e)
      如果可以立即在不违反容量限制的情况下将指定的元素插入到此deque的前面,如果当前没有可用空间,则抛出一个 IllegalStateException
      void addLast​(E e)
      如果可以立即在不违反容量限制的情况下将指定的元素插入到此deque的末尾,则抛出一个 IllegalStateException如果当前没有空格)。
      boolean contains​(Object o)
      如果此deque包含指定的元素,则返回 true
      E element​()
      检索但不删除由此deque表示的队列的头部(换句话说,该deque的第一个元素)。
      Iterator<E> iterator​()
      以正确的顺序返回此deque中的元素的迭代器。
      boolean offer​(E e)
      将指定的元素插入此双端队列表示的队列中(换句话说,在此双端队列的尾部),如果它是立即可行且不会违反容量限制,返回 true在成功和 false ,如果当前没有空间可用。
      boolean offer​(E e, long timeout, TimeUnit unit)
      将指定的元素插入由此deque表示的队列中(换句话说,在该deque的尾部),等待指定的等待时间(如果需要空间可用)。
      boolean offerFirst​(E e)
      插入此双端队列的前面,如果它是立即可行且不会违反容量限制,返回指定的元素 true在成功 false如果当前没有空间可用。
      boolean offerFirst​(E e, long timeout, TimeUnit unit)
      在此deque的前面插入指定的元素,等待指定的等待时间(如果需要空间可用)。
      boolean offerLast​(E e)
      插入此双端队列的末尾,如果它是立即可行且不会违反容量限制,返回指定的元素 true在成功 false如果当前没有空间可用。
      boolean offerLast​(E e, long timeout, TimeUnit unit)
      在此deque的末尾插入指定的元素,如果需要空间可用,等待指定的等待时间。
      E peek​()
      检索但不删除由此deque表示的队列的头部(换句话说,此deque的第一个元素),如果此deque为空,则返回 null
      E poll​()
      检索并删除由此deque表示的队列的头部(换句话说,该deque的第一个元素),如果此deque为空,则返回 null
      E poll​(long timeout, TimeUnit unit)
      检索并删除由此deque(换句话说,该deque的第一个元素)表示的队列的头部,等待到指定的等待时间(如有必要)使元素变为可用。
      E pollFirst​(long timeout, TimeUnit unit)
      检索并删除此deque的第一个元素,等待到指定的等待时间(如有必要)使元素变为可用。
      E pollLast​(long timeout, TimeUnit unit)
      检索并删除此deque的最后一个元素,等待到指定的等待时间,如果需要,元素可用。
      void push​(E e)
      将元素推送到由此deque表示的堆栈(换句话说,在此deque的头部),如果可能立即执行此操作而不违反容量限制,则抛出 IllegalStateException如果当前没有可用空间)。
      void put​(E e)
      将指定的元素插入由此deque表示的队列(换句话说,在该deque的尾部),等待空格变为可用时。
      void putFirst​(E e)
      在此deque的前面插入指定的元素,如有必要,等待空格变为可用。
      void putLast​(E e)
      在此deque的末尾插入指定的元素,如有必要,等待空格变为可用。
      E remove​()
      检索并删除由此deque表示的队列的头部(换句话说,该deque的第一个元素)。
      boolean remove​(Object o)
      从此deque中删除指定元素的第一个出现。
      boolean removeFirstOccurrence​(Object o)
      从此deque中删除指定元素的第一个出现。
      boolean removeLastOccurrence​(Object o)
      从此deque中删除指定元素的最后一次出现。
      int size​()
      返回此deque中的元素数。
      E take​()
      检索并删除由此deque(换句话说,该deque的第一个元素)表示的队列的头部,如果需要,等待,直到元素可用。
      E takeFirst​()
      检索并删除此deque的第一个元素,如有必要等待,直到元素可用。
      E takeLast​()
      检索并删除此deque的最后一个元素,如有必要等待,直到元素可用。
    • 方法详细信息

      • addFirst

        void addFirst​(E e)
        如果可以立即在不违反容量限制的情况下将指定的元素插入到此deque的前面,如果当前没有可用的空间,则抛出一个IllegalStateException 当使用容量限制的deque时,通常最好使用offerFirst
        Specified by:
        addFirst在接口 Deque<E>
        参数
        e - 要添加的元素
        异常
        IllegalStateException - 如果由于容量限制,此时无法添加该元素
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • addLast

        void addLast​(E e)
        如果可以立即在不违反容量限制的情况下将指定的元素插入到此deque的末尾,如果当前没有可用的空间,则抛出一个IllegalStateException 当使用容量限制的deque时,通常最好使用offerLast
        Specified by:
        addLast在接口 Deque<E>
        参数
        e - 要添加的元素
        异常
        IllegalStateException - 如果由于容量限制,此时无法添加该元素
        ClassCastException - 如果指定元素的类阻止它添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offerFirst

        boolean offerFirst​(E e)
        插入此双端队列的前面,如果它是立即可行且不会违反容量限制,返回指定的元素true在成功false如果当前没有空间可用。 当使用容量限制的deque时,这种方法通常比addFirst方法更为方便 ,只能通过抛出异常来插入元素。
        Specified by:
        offerFirst在接口 Deque<E>
        参数
        e - 要添加的元素
        结果
        true如果元素被添加到此deque,否则为 false
        异常
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offerLast

        boolean offerLast​(E e)
        插入此双端队列的末尾,如果它是立即可行且不会违反容量限制,返回指定的元素true在成功false如果当前没有空间可用。 当使用容量限制的deque时,这种方法通常比addLast方法更为方便 ,只能通过抛出异常来插入元素。
        Specified by:
        offerLast在接口 Deque<E>
        参数
        e - 要添加的元素
        结果
        true如果元素被添加到此deque,否则为 false
        异常
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offerFirst

        boolean offerFirst​(E e,
                           long timeout,
                           TimeUnit unit)
                    throws InterruptedException
        在此deque的前面插入指定的元素,等待指定的等待时间(如果需要空间可用)。
        参数
        e - 要添加的元素
        timeout - 放弃之前等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        true如果成功,或 false如果在空间可用之前经过指定的等待时间
        异常
        InterruptedException - 如果等待中断
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offerLast

        boolean offerLast​(E e,
                          long timeout,
                          TimeUnit unit)
                   throws InterruptedException
        在此deque的末尾插入指定的元素,如果需要空间可用,等待指定的等待时间。
        参数
        e - 要添加的元素
        timeout - 放弃等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        true如果成功,或 false如果在空间可用之前经过指定的等待时间
        异常
        InterruptedException - 如果中断等待
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • takeFirst

        E takeFirst​()
             throws InterruptedException
        检索并删除此deque的第一个元素,如有必要等待,直到元素可用。
        结果
        这个德克的头
        异常
        InterruptedException - 如果在等待时中断
      • takeLast

        E takeLast​()
            throws InterruptedException
        检索并删除此deque的最后一个元素,如有必要等待,直到元素可用。
        结果
        这个德克的尾巴
        异常
        InterruptedException - 如果在等待时中断
      • pollFirst

        E pollFirst​(long timeout,
                    TimeUnit unit)
             throws InterruptedException
        检索并删除此deque的第一个元素,等待到指定的等待时间(如有必要)使元素变为可用。
        参数
        timeout - 放弃之前等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        如果在元素可用之前经过了指定的等待时间,那么这个deque的头,或者是 null
        异常
        InterruptedException - 等待时中断
      • pollLast

        E pollLast​(long timeout,
                   TimeUnit unit)
            throws InterruptedException
        检索并删除此deque的最后一个元素,等待到指定的等待时间,如果需要,元素可用。
        参数
        timeout - 放弃之前等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        如果在元素可用之前经过了指定的等待时间,则此deque的尾部,或 null
        异常
        InterruptedException - 如果在等待时中断
      • removeFirstOccurrence

        boolean removeFirstOccurrence​(Object o)
        从此deque中删除指定元素的第一个出现。 如果deque不包含元素,则它不变。 更正式地,删除第一元素e ,使得o.equals(e) (如果这样的元素存在)。 如果此deque包含指定的元素(或等效地,如果此deque由于调用而改变),则返回true
        Specified by:
        removeFirstOccurrence在接口 Deque<E>
        参数
        o - 要从此deque中删除的元素(如果存在)
        结果
        true如果一个元素被删除作为这个调用的结果
        异常
        ClassCastException - 如果指定元素的类与此deque不兼容( optional
        NullPointerException - 如果指定的元素为空( optional
      • removeLastOccurrence

        boolean removeLastOccurrence​(Object o)
        从此deque中删除指定元素的最后一次出现。 如果deque不包含元素,则它不变。 更正式地,删除最后一个元素e ,使得o.equals(e) (如果这样的元素存在)。 如果此deque包含指定的元素(或等效地,如果该deque由于调用而更改),则返回true
        Specified by:
        removeLastOccurrence在接口 Deque<E>
        参数
        o - 要从此deque移除的元素(如果存在)
        结果
        true如果一个元素被删除作为这个调用的结果
        异常
        ClassCastException - 如果指定元素的类与此deque不兼容( optional
        NullPointerException - 如果指定的元素为空( optional
      • add

        boolean add​(E e)
        将指定的元素插入由此deque(换句话说,在该deque的尾部)表示的队列中,如果可以立即执行,而不违反容量限制, true在成功后返回true ,如果当前没有可用空间,则抛出IllegalStateException 当使用容量限制的deque时,通常最好使用offer

        此方法相当于addLast

        Specified by:
        add在接口 BlockingQueue<E>
        Specified by:
        add在接口 Collection<E>
        Specified by:
        add在接口 Deque<E>
        Specified by:
        add在接口 Queue<E>
        参数
        e - 要添加的元素
        结果
        true (由 Collection.add(E)指定)
        异常
        IllegalStateException - 如果由于容量限制,此时无法添加该元素
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offer

        boolean offer​(E e)
        将指定的元素插入此双端队列表示的队列中(换句话说,在此双端队列的尾部),如果它是立即可行且不会违反容量限制,返回true在成功和false ,如果当前没有空间可用。 当使用容量限制的deque时,这种方法通常比add(E)方法更为方便 ,只能通过抛出异常来插入元素。

        此方法相当于offerLast

        Specified by:
        offer接口 BlockingQueue<E>
        Specified by:
        offer在接口 Deque<E>
        Specified by:
        offer在接口 Queue<E>
        参数
        e - 要添加的元素
        结果
        true如果元素被添加到该队列,否则为 false
        异常
        ClassCastException - 如果指定元素的类阻止它添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • offer

        boolean offer​(E e,
                      long timeout,
                      TimeUnit unit)
               throws InterruptedException
        将指定的元素插入由此deque表示的队列中(换句话说,在该deque的尾部),等待指定的等待时间(如果需要空间可用)。

        此方法相当于offerLast

        Specified by:
        offer在接口 BlockingQueue<E>
        参数
        e - 要添加的元素
        timeout - 放弃之前等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        true如果元素被添加到此deque,否则为 false
        异常
        InterruptedException - 如果在等待时中断
        ClassCastException - 如果指定元素的类阻止它添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此deque
      • remove

        E remove​()
        检索并删除由此deque表示的队列的头部(换句话说,该deque的第一个元素)。 此方法与poll不同之处在于,如果此deque为空,它将抛出异常。

        此方法相当于removeFirst

        Specified by:
        remove接口 Deque<E>
        Specified by:
        remove在接口 Queue<E>
        结果
        由这个德克队代表的队列的头
        异常
        NoSuchElementException - 如果这个deque是空的
      • poll

        E poll​()
        检索并删除由此deque(换句话说,此deque的第一个元素)表示的队列的头部,如果此deque为空,则返回null

        此方法相当于Deque.pollFirst()

        Specified by:
        poll在接口 Deque<E>
        Specified by:
        poll在接口 Queue<E>
        结果
        这个deque的头,或 null如果这个deque是空的
      • take

        E take​()
        throws InterruptedException
        检索并删除由此deque(换句话说,该deque的第一个元素)表示的队列的头部,如果需要,等待,直到元素可用。

        此方法相当于takeFirst

        Specified by:
        take在接口 BlockingQueue<E>
        结果
        这个德克的头
        异常
        InterruptedException - 如果在等待时中断
      • poll

        E poll​(long timeout,
               TimeUnit unit)
        throws InterruptedException
        检索并删除由此deque(换句话说,该deque的第一个元素)表示的队列的头部,等待到指定的等待时间(如有必要)使元素变为可用。

        这个方法相当于pollFirst

        Specified by:
        poll在接口 BlockingQueue<E>
        参数
        timeout - 放弃等待多久,以 unit为单位
        unit - a TimeUnit确定如何解释 timeout参数
        结果
        如果在元素可用之前经过了指定的等待时间,那么这个deque的头,或者是 null
        异常
        InterruptedException - 如果在等待时中断
      • element

        E element​()
        检索但不删除由此deque表示的队列的头部(换句话说,该deque的第一个元素)。 此方法与peek不同之处在于,如果此deque为空,它将抛出异常。

        此方法相当于getFirst

        Specified by:
        element在接口 Deque<E>
        Specified by:
        element在接口 Queue<E>
        结果
        这个德克的头
        异常
        NoSuchElementException - 如果这个deque是空的
      • peek

        E peek​()
        检索但不删除由此deque表示的队列的头部(换句话说,此deque的第一个元素),如果此deque为空,则返回null

        此方法相当于peekFirst

        Specified by:
        peek在接口 Deque<E>
        Specified by:
        peek在接口 Queue<E>
        结果
        这个deque的头,或 null如果这个deque是空的
      • remove

        boolean remove​(Object o)
        从此deque中删除指定元素的第一个出现。 如果deque不包含元素,则它不变。 更正式地,删除第一元素e ,使得o.equals(e) (如果这样的元素存在)。 如果此deque包含指定的元素(或等效地,如果此deque由于调用而更改),则返回true

        此方法相当于removeFirstOccurrence

        Specified by:
        remove在接口 BlockingQueue<E>
        Specified by:
        remove在接口 Collection<E>
        Specified by:
        remove在接口 Deque<E>
        参数
        o - 要从此deque移除的元素(如果存在)
        结果
        true如果这个deque因呼叫而改变了
        异常
        ClassCastException - 如果指定元素的类与此deque不兼容( optional
        NullPointerException - 如果指定的元素为空( optional
      • contains

        boolean contains​(Object o)
        如果此deque包含指定的元素,则返回true 更正式地说,返回true当且仅当此双端队列至少包含一个元素e这样o.equals(e)
        Specified by:
        contains在接口 BlockingQueue<E>
        Specified by:
        contains在接口 Collection<E>
        Specified by:
        contains在接口 Deque<E>
        参数
        o - 要在此 o中检查遏制的对象
        结果
        true如果这个deque包含指定的元素
        异常
        ClassCastException - 如果指定元素的类与此deque不兼容( optional
        NullPointerException - 如果指定的元素为空( optional
      • size

        int size​()
        返回此deque中的元素数。
        Specified by:
        size在接口 Collection<E>
        Specified by:
        size在接口 Deque<E>
        结果
        这个deque中的元素数量
      • iterator

        Iterator<E> iterator​()
        以正确的顺序返回此deque中的元素的迭代器。 元素将按照从头(头)到最后(尾)的顺序返回。
        Specified by:
        iterator在接口 Collection<E>
        Specified by:
        iterator在接口 Deque<E>
        Specified by:
        iterator在接口 Iterable<E>
        结果
        在这个deque中的元素以适当的顺序迭代
      • push

        void push​(E e)
        将元素推送到由此deque表示的堆栈(换句话说,在此deque的头部),如果可以立即执行此操作而不违反容量限制,则抛出IllegalStateException如果当前没有可用空间)。

        此方法相当于addFirst

        Specified by:
        push在接口 Deque<E>
        参数
        e - 要推的元素
        异常
        IllegalStateException - 如果由于容量限制,此时无法添加该元素
        ClassCastException - 如果指定元素的类阻止将其添加到此deque
        NullPointerException - 如果指定的元素为空
        IllegalArgumentException - if some property of the specified element prevents it from being added to this deque