10-其他说明
其他说明
LinkedBlockingDeque
类也提供了其他增删元素的方法,它们通过抛出异常或者直接返回 null
值来代替阻塞行为。这些方法如下所示。
takeFirst()
和takeLast()
:这些方法分别返回双端队列中的第一个和最后一个元素。同时它们会移除队列中已经返回的元素。如果队列是空的,则它们会阻塞线程直到队列中有元素时为止。getFirst()
和getLast()
:这些方法分别返回双端队列中的第一个和最后一个元素。但它们不会移除队列中已经返回的元素。如果队列是空的,则它们会抛出一个NoSuchElementException
异常。peek()
、peekFirst()
和peekLast()
:peekFirst()
和peekLast()
方法分别返回队列中的第一个和最后一个元素。但它们不会移除队列中已经返回的元素。如果队列是空的,则它们会返回null
值。poll()
、pollFirst()
和pollLast()
:pollFirst()
和pollLast()
方法分别返回队列中的第一个和最后一个元素。同时它们会移除队列中已经返回的元素。如果队列是空的,则它们会返回null
值。add()
、addFirst()
和addLast()
:addFirst()
和addLast()
方法会分别添加一个元素到队头和队尾。如果双端队列是满的(在创建队列的时候指定了队列的长度),则它们会抛出一个IllegalStateException
异常。