text: <!DOCTYPE HTML>
  <!-- NewPage -->
  <html lang="en">
  <head>
  <!-- Generated by javadoc -->
  <title>ArrayDeque (Java SE 12 &amp; JDK 12 )</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="keywords" content="java.util.ArrayDeque class">
  <meta name="keywords" content="addFirst()">
  <meta name="keywords" content="addLast()">
  <meta name="keywords" content="addAll()">
  <meta name="keywords" content="offerFirst()">
  <meta name="keywords" content="offerLast()">
  <meta name="keywords" content="removeFirst()">
  <meta name="keywords" content="removeLast()">
  <meta name="keywords" content="pollFirst()">
  <meta name="keywords" content="pollLast()">
  <meta name="keywords" content="getFirst()">
  <meta name="keywords" content="getLast()">
  <meta name="keywords" content="peekFirst()">
  <meta name="keywords" content="peekLast()">
  <meta name="keywords" content="removeFirstOccurrence()">
  <meta name="keywords" content="removeLastOccurrence()">
  <meta name="keywords" content="add()">
  <meta name="keywords" content="offer()">
  <meta name="keywords" content="remove()">
  <meta name="keywords" content="poll()">
  <meta name="keywords" content="element()">
  <meta name="keywords" content="peek()">
  <meta name="keywords" content="push()">
  <meta name="keywords" content="pop()">
  <meta name="keywords" content="size()">
  <meta name="keywords" content="isEmpty()">
  <meta name="keywords" content="iterator()">
  <meta name="keywords" content="descendingIterator()">
  <meta name="keywords" content="spliterator()">
  <meta name="keywords" content="forEach()">
  <meta name="keywords" content="removeIf()">
  <meta name="keywords" content="removeAll()">
  <meta name="keywords" content="retainAll()">
  <meta name="keywords" content="contains()">
  <meta name="keywords" content="clear()">
  <meta name="keywords" content="toArray()">
  <meta name="keywords" content="clone()">
  <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
  <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
  <script type="text/javascript" src="../../../script.js"></script>
  <script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
  <script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
  <!--[if IE]>
  <script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
  <![endif]-->
  <script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
  <script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
  <script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
  </head>
  <body>
  <script type="text/javascript"><!--
      try {
          if (location.href.indexOf('is-external=true') == -1) {
              parent.document.title="ArrayDeque (Java SE 12 & JDK 12 )";
          }
      }
      catch(err) {
      }
  //-->
  var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10};
  var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
  var altColor = "altColor";
  var rowColor = "rowColor";
  var tableTab = "tableTab";
  var activeTableTab = "activeTableTab";
  var pathtoroot = "../../../";
  var useModuleDirectories = true;
  loadScripts(document, 'script');</script>
  <noscript>
  <div>JavaScript is disabled on your browser.</div>
  </noscript>
  <header role="banner">
  <nav role="navigation">
  <div class="fixedNav">
  <!-- ========= START OF TOP NAVBAR ======= -->
  <div class="topNav"><a id="navbar.top">
  <!--   -->
  </a>
  <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
  <a id="navbar.top.firstrow">
  <!--   -->
  </a>
  <ul class="navList" title="Navigation">
  <li><a href="../../../index.html">Overview</a></li>
  <li><a href="../../module-summary.html">Module</a></li>
  <li><a href="package-summary.html">Package</a></li>
  <li class="navBarCell1Rev">Class</li>
  <li><a href="class-use/ArrayDeque.html">Use</a></li>
  <li><a href="package-tree.html">Tree</a></li>
  <li><a href="../../../deprecated-list.html">Deprecated</a></li>
  <li><a href="../../../index-files/index-1.html">Index</a></li>
  <li><a href="../../../help-doc.html">Help</a></li>
  </ul>
  <div class="aboutLanguage"><div style="margin-top: 14px;"><strong>Java SE 12 &amp; JDK 12</strong> </div></div>
  </div>
  <div class="subNav">
  <div>
  <ul class="subNavList">
  <li>Summary:&nbsp;</li>
  <li>Nested&nbsp;|&nbsp;</li>
  <li>Field&nbsp;|&nbsp;</li>
  <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
  <li><a href="#method.summary">Method</a></li>
  </ul>
  <ul class="subNavList">
  <li>Detail:&nbsp;</li>
  <li>Field&nbsp;|&nbsp;</li>
  <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
  <li><a href="#method.detail">Method</a></li>
  </ul>
  </div>
  <ul class="navListSearch">
  <li><label for="search">SEARCH:</label>
  <input type="text" id="search" value="search" disabled="disabled">
  <input type="reset" id="reset" value="reset" disabled="disabled">
  </li>
  </ul>
  </div>
  <a id="skip.navbar.top">
  <!--   -->
  </a>
  <!-- ========= END OF TOP NAVBAR ========= -->
  </div>
  <div class="navPadding">&nbsp;</div>
  <script type="text/javascript"><!--
  $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  //-->
  </script>
  </nav>
  </header>
  <!-- ======== START OF CLASS DATA ======== -->
  <main role="main">
  <div class="header">
  <div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../module-summary.html">java.base</a></div>
  <div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">java.util</a></div>
  <h2 title="Class ArrayDeque" class="title">Class ArrayDeque&lt;E&gt;</h2>
  </div>
  <div class="contentContainer">
  <ul class="inheritance">
  <li><a href="../lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
  <li>
  <ul class="inheritance">
  <li><a href="AbstractCollection.html" title="class in java.util">java.util.AbstractCollection</a>&lt;E&gt;</li>
  <li>
  <ul class="inheritance">
  <li>java.util.ArrayDeque&lt;E&gt;</li>
  </ul>
  </li>
  </ul>
  </li>
  </ul>
  <div class="description">
  <ul class="blockList">
  <li class="blockList">
  <dl>
  <dt><span class="paramLabel">Type Parameters:</span></dt>
  <dd><code>E</code> - the type of elements held in this deque</dd>
  </dl>
  <dl>
  <dt>All Implemented Interfaces:</dt>
  <dd><code><a href="../io/Serializable.html" title="interface in java.io">Serializable</a></code>, <code><a href="../lang/Cloneable.html" title="interface in java.lang">Cloneable</a></code>, <code><a href="../lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;E&gt;</code>, <code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;E&gt;</code>, <code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;E&gt;</code>, <code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;E&gt;</code></dd>
  </dl>
  <hr>
  <pre>public class <span class="typeNameLabel">ArrayDeque&lt;E&gt;</span>
  extends <a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;E&gt;
  implements <a href="Deque.html" title="interface in java.util">Deque</a>&lt;E&gt;, <a href="../lang/Cloneable.html" title="interface in java.lang">Cloneable</a>, <a href="../io/Serializable.html" title="interface in java.io">Serializable</a></pre>
  <div class="block">Resizable-array implementation of the <a href="Deque.html" title="interface in java.util"><code>Deque</code></a> interface.  Array
   deques have no capacity restrictions; they grow as necessary to support
   usage.  They are not thread-safe; in the absence of external
   synchronization, they do not support concurrent access by multiple threads.
   Null elements are prohibited.  This class is likely to be faster than
   <a href="Stack.html" title="class in java.util"><code>Stack</code></a> when used as a stack, and faster than <a href="LinkedList.html" title="class in java.util"><code>LinkedList</code></a>
   when used as a queue.
  
   <p>Most <code>ArrayDeque</code> operations run in amortized constant time.
   Exceptions include
   <a href="#remove(java.lang.Object)"><code>remove</code></a>,
   <a href="#removeFirstOccurrence(java.lang.Object)"><code>removeFirstOccurrence</code></a>,
   <a href="#removeLastOccurrence(java.lang.Object)"><code>removeLastOccurrence</code></a>,
   <a href="#contains(java.lang.Object)"><code>contains</code></a>,
   <a href="#iterator()"><code>iterator.remove()</code></a>,
   and the bulk operations, all of which run in linear time.
  
   <p>The iterators returned by this class's <a href="#iterator()"><code>iterator</code></a>
   method are <em>fail-fast</em>: If the deque is modified at any time after
   the iterator is created, in any way except through the iterator's own
   <code>remove</code> method, the iterator will generally throw a <a href="ConcurrentModificationException.html" title="class in java.util"><code>ConcurrentModificationException</code></a>.  Thus, in the face of concurrent
   modification, the iterator fails quickly and cleanly, rather than risking
   arbitrary, non-deterministic behavior at an undetermined time in the
   future.
  
   <p>Note that the fail-fast behavior of an iterator cannot be guaranteed
   as it is, generally speaking, impossible to make any hard guarantees in the
   presence of unsynchronized concurrent modification.  Fail-fast iterators
   throw <code>ConcurrentModificationException</code> on a best-effort basis.
   Therefore, it would be wrong to write a program that depended on this
   exception for its correctness: <i>the fail-fast behavior of iterators
   should be used only to detect bugs.</i>
  
   <p>This class and its iterator implement all of the
   <em>optional</em> methods of the <a href="Collection.html" title="interface in java.util"><code>Collection</code></a> and <a href="Iterator.html" title="interface in java.util"><code>Iterator</code></a> interfaces.
  
   <p>This class is a member of the
   <a href="../../../java.base/java/util/package-summary.html#CollectionsFramework">
   Java Collections Framework</a>.</div>
  <dl>
  <dt><span class="simpleTagLabel">Since:</span></dt>
  <dd>1.6</dd>
  <dt><span class="seeLabel">See Also:</span></dt>
  <dd><a href="../../../serialized-form.html#java.util.ArrayDeque">Serialized Form</a></dd>
  </dl>
  </li>
  </ul>
  </div>
  <div class="summary">
  <ul class="blockList">
  <li class="blockList">
  <!-- ======== CONSTRUCTOR SUMMARY ======== -->
  <section role="region">
  <ul class="blockList">
  <li class="blockList"><a id="constructor.summary">
  <!--   -->
  </a>
  <h3>Constructor Summary</h3>
  <div class="memberSummary">
  <table>
  <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
  <tr>
  <th class="colFirst" scope="col">Constructor</th>
  <th class="colLast" scope="col">Description</th>
  </tr>
  <tbody>
  <tr class="altColor">
  <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ArrayDeque</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Constructs an empty array deque with an initial capacity
   sufficient to hold 16 elements.</div>
  </td>
  </tr>
  <tr class="rowColor">
  <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ArrayDeque</a></span>&#8203;(int&nbsp;numElements)</code></th>
  <td class="colLast">
  <div class="block">Constructs an empty array deque with an initial capacity
   sufficient to hold the specified number of elements.</div>
  </td>
  </tr>
  <tr class="altColor">
  <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Collection)">ArrayDeque</a></span>&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;? extends <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;c)</code></th>
  <td class="colLast">
  <div class="block">Constructs a deque containing the elements of the specified
   collection, in the order they are returned by the collection's
   iterator.</div>
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  </li>
  </ul>
  </section>
  <!-- ========== METHOD SUMMARY =========== -->
  <section role="region">
  <ul class="blockList">
  <li class="blockList"><a id="method.summary">
  <!--   -->
  </a>
  <h3>Method Summary</h3>
  <div class="memberSummary">
  <div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
  <div id="memberSummary_tabpanel" role="tabpanel">
  <table aria-labelledby="t0">
  <tr>
  <th class="colFirst" scope="col">Modifier and Type</th>
  <th class="colSecond" scope="col">Method</th>
  <th class="colLast" scope="col">Description</th>
  </tr>
  <tbody>
  <tr class="altColor" id="i0">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(E)">add</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the end of this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i1">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(java.util.Collection)">addAll</a></span>&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;? extends <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;c)</code></th>
  <td class="colLast">
  <div class="block">Adds all of the elements in the specified collection at the end
   of this deque, as if by calling <a href="#addLast(E)"><code>addLast(E)</code></a> on each one,
   in the order that they are returned by the collection's iterator.</div>
  </td>
  </tr>
  <tr class="altColor" id="i2">
  <td class="colFirst"><code>void</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(E)">addFirst</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the front of this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i3">
  <td class="colFirst"><code>void</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addLast(E)">addLast</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the end of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i4">
  <td class="colFirst"><code>void</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Removes all of the elements from this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i5">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="class in java.util">ArrayDeque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Returns a copy of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i6">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.Object)">contains</a></span>&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</code></th>
  <td class="colLast">
  <div class="block">Returns <code>true</code> if this deque contains the specified element.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i7">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#element()">element</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves, but does not remove, the head of the queue represented by
   this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i8">
  <td class="colFirst"><code>void</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forEach(java.util.function.Consumer)">forEach</a></span>&#8203;(<a href="function/Consumer.html" title="interface in java.util.function">Consumer</a>&lt;? super <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;action)</code></th>
  <td class="colLast">
  <div class="block">Performs the given action for each element of the <code>Iterable</code>
   until all elements have been processed or the action throws an
   exception.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i9">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst()">getFirst</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves, but does not remove, the first element of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i10">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLast()">getLast</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves, but does not remove, the last element of this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i11">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Returns <code>true</code> if this deque contains no elements.</div>
  </td>
  </tr>
  <tr class="altColor" id="i12">
  <td class="colFirst"><code><a href="Iterator.html" title="interface in java.util">Iterator</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Returns an iterator over the elements in this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i13">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#offer(E)">offer</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the end of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i14">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#offerFirst(E)">offerFirst</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the front of this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i15">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#offerLast(E)">offerLast</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Inserts the specified element at the end of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i16">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek()">peek</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves, but does not remove, the head of the queue represented by
   this deque, or returns <code>null</code> if this deque is empty.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i17">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#poll()">poll</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves and removes the head of the queue represented by this deque
   (in other words, the first element of this deque), or returns
   <code>null</code> if this deque is empty.</div>
  </td>
  </tr>
  <tr class="altColor" id="i18">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pop()">pop</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Pops an element from the stack represented by this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i19">
  <td class="colFirst"><code>void</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#push(E)">push</a></span>&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</code></th>
  <td class="colLast">
  <div class="block">Pushes an element onto the stack represented by this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i20">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove()">remove</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves and removes the head of the queue represented by this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i21">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(java.lang.Object)">remove</a></span>&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</code></th>
  <td class="colLast">
  <div class="block">Removes a single instance of the specified element from this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i22">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAll(java.util.Collection)">removeAll</a></span>&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</code></th>
  <td class="colLast">
  <div class="block">Removes all of this collection's elements that are also contained in the
   specified collection (optional operation).</div>
  </td>
  </tr>
  <tr class="rowColor" id="i23">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeFirst()">removeFirst</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves and removes the first element of this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i24">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeFirstOccurrence(java.lang.Object)">removeFirstOccurrence</a></span>&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</code></th>
  <td class="colLast">
  <div class="block">Removes the first occurrence of the specified element in this
   deque (when traversing the deque from head to tail).</div>
  </td>
  </tr>
  <tr class="rowColor" id="i25">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeIf(java.util.function.Predicate)">removeIf</a></span>&#8203;(<a href="function/Predicate.html" title="interface in java.util.function">Predicate</a>&lt;? super <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;filter)</code></th>
  <td class="colLast">
  <div class="block">Removes all of the elements of this collection that satisfy the given
   predicate.</div>
  </td>
  </tr>
  <tr class="altColor" id="i26">
  <td class="colFirst"><code><a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a></code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeLast()">removeLast</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Retrieves and removes the last element of this deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i27">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeLastOccurrence(java.lang.Object)">removeLastOccurrence</a></span>&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</code></th>
  <td class="colLast">
  <div class="block">Removes the last occurrence of the specified element in this
   deque (when traversing the deque from head to tail).</div>
  </td>
  </tr>
  <tr class="altColor" id="i28">
  <td class="colFirst"><code>boolean</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retainAll(java.util.Collection)">retainAll</a></span>&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</code></th>
  <td class="colLast">
  <div class="block">Retains only the elements in this collection that are contained in the
   specified collection (optional operation).</div>
  </td>
  </tr>
  <tr class="rowColor" id="i29">
  <td class="colFirst"><code>int</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Returns the number of elements in this deque.</div>
  </td>
  </tr>
  <tr class="altColor" id="i30">
  <td class="colFirst"><code><a href="Spliterator.html" title="interface in java.util">Spliterator</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#spliterator()">spliterator</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Creates a <em><a href="Spliterator.html#binding">late-binding</a></em>
   and <em>fail-fast</em> <a href="Spliterator.html" title="interface in java.util"><code>Spliterator</code></a> over the elements in this
   deque.</div>
  </td>
  </tr>
  <tr class="rowColor" id="i31">
  <td class="colFirst"><code><a href="../lang/Object.html" title="class in java.lang">Object</a>[]</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray()">toArray</a></span>()</code></th>
  <td class="colLast">
  <div class="block">Returns an array containing all of the elements in this deque
   in proper sequence (from first to last element).</div>
  </td>
  </tr>
  <tr class="altColor" id="i32">
  <td class="colFirst"><code>&lt;T&gt;&nbsp;T[]</code></td>
  <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray(T%5B%5D)">toArray</a></span>&#8203;(T[]&nbsp;a)</code></th>
  <td class="colLast">
  <div class="block">Returns an array containing all of the elements in this deque in
   proper sequence (from first to last element); the runtime type of the
   returned array is that of the specified array.</div>
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  </div>
  <ul class="blockList">
  <li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractCollection">
  <!--   -->
  </a>
  <h3>Methods declared in class&nbsp;java.util.<a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a></h3>
  <code><a href="AbstractCollection.html#containsAll(java.util.Collection)">containsAll</a>, <a href="AbstractCollection.html#toString()">toString</a></code></li>
  </ul>
  <ul class="blockList">
  <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
  <!--   -->
  </a>
  <h3>Methods declared in class&nbsp;java.lang.<a href="../lang/Object.html" title="class in java.lang">Object</a></h3>
  <code><a href="../lang/Object.html#equals(java.lang.Object)">equals</a>, <a href="../lang/Object.html#finalize()">finalize</a>, <a href="../lang/Object.html#getClass()">getClass</a>, <a href="../lang/Object.html#hashCode()">hashCode</a>, <a href="../lang/Object.html#notify()">notify</a>, <a href="../lang/Object.html#notifyAll()">notifyAll</a>, <a href="../lang/Object.html#wait()">wait</a>, <a href="../lang/Object.html#wait(long)">wait</a>, <a href="../lang/Object.html#wait(long,int)">wait</a></code></li>
  </ul>
  <ul class="blockList">
  <li class="blockList"><a id="methods.inherited.from.class.java.util.Collection">
  <!--   -->
  </a>
  <h3>Methods declared in interface&nbsp;java.util.<a href="Collection.html" title="interface in java.util">Collection</a></h3>
  <code><a href="Collection.html#containsAll(java.util.Collection)">containsAll</a>, <a href="Collection.html#equals(java.lang.Object)">equals</a>, <a href="Collection.html#hashCode()">hashCode</a>, <a href="Collection.html#parallelStream()">parallelStream</a>, <a href="Collection.html#stream()">stream</a>, <a href="Collection.html#toArray(java.util.function.IntFunction)">toArray</a></code></li>
  </ul>
  <ul class="blockList">
  <li class="blockList"><a id="methods.inherited.from.class.java.util.Deque">
  <!--   -->
  </a>
  <h3>Methods declared in interface&nbsp;java.util.<a href="Deque.html" title="interface in java.util">Deque</a></h3>
  <code><a href="Deque.html#descendingIterator()">descendingIterator</a>, <a href="Deque.html#peekFirst()">peekFirst</a>, <a href="Deque.html#peekLast()">peekLast</a>, <a href="Deque.html#pollFirst()">pollFirst</a>, <a href="Deque.html#pollLast()">pollLast</a></code></li>
  </ul>
  </li>
  </ul>
  </section>
  </li>
  </ul>
  </div>
  <div class="details">
  <ul class="blockList">
  <li class="blockList">
  <!-- ========= CONSTRUCTOR DETAIL ======== -->
  <section role="region">
  <ul class="blockList">
  <li class="blockList"><a id="constructor.detail">
  <!--   -->
  </a>
  <h3>Constructor Detail</h3>
  <a id="&lt;init&gt;()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>ArrayDeque</h4>
  <pre>public&nbsp;ArrayDeque()</pre>
  <div class="block">Constructs an empty array deque with an initial capacity
   sufficient to hold 16 elements.</div>
  </li>
  </ul>
  <a id="&lt;init&gt;(int)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>ArrayDeque</h4>
  <pre>public&nbsp;ArrayDeque&#8203;(int&nbsp;numElements)</pre>
  <div class="block">Constructs an empty array deque with an initial capacity
   sufficient to hold the specified number of elements.</div>
  <dl>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>numElements</code> - lower bound on initial capacity of the deque</dd>
  </dl>
  </li>
  </ul>
  <a id="&lt;init&gt;(java.util.Collection)">
  <!--   -->
  </a>
  <ul class="blockListLast">
  <li class="blockList">
  <h4>ArrayDeque</h4>
  <pre>public&nbsp;ArrayDeque&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;? extends <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;c)</pre>
  <div class="block">Constructs a deque containing the elements of the specified
   collection, in the order they are returned by the collection's
   iterator.  (The first element returned by the collection's
   iterator becomes the first element, or <i>front</i> of the
   deque.)</div>
  <dl>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>c</code> - the collection whose elements are to be placed into the deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified collection is null</dd>
  </dl>
  </li>
  </ul>
  </li>
  </ul>
  </section>
  <!-- ============ METHOD DETAIL ========== -->
  <section role="region">
  <ul class="blockList">
  <li class="blockList"><a id="method.detail">
  <!--   -->
  </a>
  <h3>Method Detail</h3>
  <a id="addFirst(java.lang.Object)">
  <!--   -->
  </a><a id="addFirst(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>addFirst</h4>
  <pre class="methodSignature">public&nbsp;void&nbsp;addFirst&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the front of this deque.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#addFirst(E)">addFirst</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="addLast(java.lang.Object)">
  <!--   -->
  </a><a id="addLast(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>addLast</h4>
  <pre class="methodSignature">public&nbsp;void&nbsp;addLast&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the end of this deque.
  
   <p>This method is equivalent to <a href="#add(E)"><code>add(E)</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#addLast(E)">addLast</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="addAll(java.util.Collection)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>addAll</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;addAll&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;? extends <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;c)</pre>
  <div class="block">Adds all of the elements in the specified collection at the end
   of this deque, as if by calling <a href="#addLast(E)"><code>addLast(E)</code></a> on each one,
   in the order that they are returned by the collection's iterator.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#addAll(java.util.Collection)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#addAll(java.util.Collection)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#addAll(java.util.Collection)">addAll</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>c</code> - the elements to be inserted into this deque</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this deque changed as a result of the call</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified collection or any
           of its elements are null</dd>
  <dt><span class="seeLabel">See Also:</span></dt>
  <dd><a href="AbstractCollection.html#add(E)"><code>AbstractCollection.add(Object)</code></a></dd>
  </dl>
  </li>
  </ul>
  <a id="offerFirst(java.lang.Object)">
  <!--   -->
  </a><a id="offerFirst(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>offerFirst</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;offerFirst&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the front of this deque.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#offerFirst(E)">offerFirst</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> (as specified by <a href="Deque.html#offerFirst(E)"><code>Deque.offerFirst(E)</code></a>)</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="offerLast(java.lang.Object)">
  <!--   -->
  </a><a id="offerLast(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>offerLast</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;offerLast&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the end of this deque.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#offerLast(E)">offerLast</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> (as specified by <a href="Deque.html#offerLast(E)"><code>Deque.offerLast(E)</code></a>)</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="removeFirst()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeFirst</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;removeFirst()</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Deque.html#removeFirst()">Deque</a></code></span></div>
  <div class="block">Retrieves and removes the first element of this deque.  This method
   differs from <a href="Deque.html#pollFirst()"><code>pollFirst</code></a> only in that it throws an
   exception if this deque is empty.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#removeFirst()">removeFirst</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="removeLast()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeLast</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;removeLast()</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Deque.html#removeLast()">Deque</a></code></span></div>
  <div class="block">Retrieves and removes the last element of this deque.  This method
   differs from <a href="Deque.html#pollLast()"><code>pollLast</code></a> only in that it throws an
   exception if this deque is empty.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#removeLast()">removeLast</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the tail of this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="getFirst()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>getFirst</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;getFirst()</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Deque.html#getFirst()">Deque</a></code></span></div>
  <div class="block">Retrieves, but does not remove, the first element of this deque.
  
   This method differs from <a href="Deque.html#peekFirst()"><code>peekFirst</code></a> only in that it
   throws an exception if this deque is empty.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#getFirst()">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="getLast()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>getLast</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;getLast()</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Deque.html#getLast()">Deque</a></code></span></div>
  <div class="block">Retrieves, but does not remove, the last element of this deque.
   This method differs from <a href="Deque.html#peekLast()"><code>peekLast</code></a> only in that it
   throws an exception if this deque is empty.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#getLast()">getLast</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the tail of this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="removeFirstOccurrence(java.lang.Object)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeFirstOccurrence</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;removeFirstOccurrence&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</pre>
  <div class="block">Removes the first occurrence of the specified element in this
   deque (when traversing the deque from head to tail).
   If the deque does not contain the element, it is unchanged.
   More formally, removes the first element <code>e</code> such that
   <code>o.equals(e)</code> (if such an element exists).
   Returns <code>true</code> if this deque contained the specified element
   (or equivalently, if this deque changed as a result of the call).</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#removeFirstOccurrence(java.lang.Object)">removeFirstOccurrence</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>o</code> - element to be removed from this deque, if present</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if the deque contained the specified element</dd>
  </dl>
  </li>
  </ul>
  <a id="removeLastOccurrence(java.lang.Object)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeLastOccurrence</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;removeLastOccurrence&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</pre>
  <div class="block">Removes the last occurrence of the specified element in this
   deque (when traversing the deque from head to tail).
   If the deque does not contain the element, it is unchanged.
   More formally, removes the last element <code>e</code> such that
   <code>o.equals(e)</code> (if such an element exists).
   Returns <code>true</code> if this deque contained the specified element
   (or equivalently, if this deque changed as a result of the call).</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#removeLastOccurrence(java.lang.Object)">removeLastOccurrence</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>o</code> - element to be removed from this deque, if present</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if the deque contained the specified element</dd>
  </dl>
  </li>
  </ul>
  <a id="add(java.lang.Object)">
  <!--   -->
  </a><a id="add(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>add</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;add&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the end of this deque.
  
   <p>This method is equivalent to <a href="#addLast(E)"><code>addLast(E)</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#add(E)">add</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#add(E)">add</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#add(E)">add</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#add(E)">add</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> (as specified by <a href="Collection.html#add(E)"><code>Collection.add(E)</code></a>)</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="offer(java.lang.Object)">
  <!--   -->
  </a><a id="offer(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>offer</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;offer&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Inserts the specified element at the end of this deque.
  
   <p>This method is equivalent to <a href="#offerLast(E)"><code>offerLast(E)</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#offer(E)">offer</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#offer(E)">offer</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to add</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> (as specified by <a href="Queue.html#offer(E)"><code>Queue.offer(E)</code></a>)</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="remove()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>remove</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;remove()</pre>
  <div class="block">Retrieves and removes the head of the queue represented by this deque.
  
   This method differs from <a href="#poll()"><code>poll()</code></a> only in that it
   throws an exception if this deque is empty.
  
   <p>This method is equivalent to <a href="#removeFirst()"><code>removeFirst()</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#remove()">remove</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#remove()">remove</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of the queue represented by this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="poll()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>poll</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;poll()</pre>
  <div class="block">Retrieves and removes the head of the queue represented by this deque
   (in other words, the first element of this deque), or returns
   <code>null</code> if this deque is empty.
  
   <p>This method is equivalent to <a href="Deque.html#pollFirst()"><code>Deque.pollFirst()</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#poll()">poll</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#poll()">poll</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of the queue represented by this deque, or
           <code>null</code> if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="element()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>element</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;element()</pre>
  <div class="block">Retrieves, but does not remove, the head of the queue represented by
   this deque.  This method differs from <a href="#peek()"><code>peek</code></a> only in
   that it throws an exception if this deque is empty.
  
   <p>This method is equivalent to <a href="#getFirst()"><code>getFirst()</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#element()">element</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#element()">element</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of the queue represented by this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="peek()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>peek</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;peek()</pre>
  <div class="block">Retrieves, but does not remove, the head of the queue represented by
   this deque, or returns <code>null</code> if this deque is empty.
  
   <p>This method is equivalent to <a href="Deque.html#peekFirst()"><code>Deque.peekFirst()</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#peek()">peek</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Queue.html#peek()">peek</a></code>&nbsp;in interface&nbsp;<code><a href="Queue.html" title="interface in java.util">Queue</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the head of the queue represented by this deque, or
           <code>null</code> if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="push(java.lang.Object)">
  <!--   -->
  </a><a id="push(E)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>push</h4>
  <pre class="methodSignature">public&nbsp;void&nbsp;push&#8203;(<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;e)</pre>
  <div class="block">Pushes an element onto the stack represented by this deque.  In other
   words, inserts the element at the front of this deque.
  
   <p>This method is equivalent to <a href="#addFirst(E)"><code>addFirst(E)</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#push(E)">push</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>e</code> - the element to push</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified element is null</dd>
  </dl>
  </li>
  </ul>
  <a id="pop()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>pop</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&nbsp;pop()</pre>
  <div class="block">Pops an element from the stack represented by this deque.  In other
   words, removes and returns the first element of this deque.
  
   <p>This method is equivalent to <a href="#removeFirst()"><code>removeFirst()</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#pop()">pop</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the element at the front of this deque (which is the top
           of the stack represented by this deque)</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="NoSuchElementException.html" title="class in java.util">NoSuchElementException</a></code> - if this deque is empty</dd>
  </dl>
  </li>
  </ul>
  <a id="size()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>size</h4>
  <pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
  <div class="block">Returns the number of elements in this deque.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#size()">size</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#size()">size</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>the number of elements in this deque</dd>
  </dl>
  </li>
  </ul>
  <a id="isEmpty()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>isEmpty</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
  <div class="block">Returns <code>true</code> if this deque contains no elements.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#isEmpty()">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#isEmpty()">isEmpty</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this deque contains no elements</dd>
  </dl>
  </li>
  </ul>
  <a id="iterator()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>iterator</h4>
  <pre class="methodSignature">public&nbsp;<a href="Iterator.html" title="interface in java.util">Iterator</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;iterator()</pre>
  <div class="block">Returns an iterator over the elements in this deque.  The elements
   will be ordered from first (head) to last (tail).  This is the same
   order that elements would be dequeued (via successive calls to
   <a href="#remove()"><code>remove()</code></a> or popped (via successive calls to <a href="#pop()"><code>pop()</code></a>).</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="../lang/Iterable.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="../lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="AbstractCollection.html#iterator()">iterator</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>an iterator over the elements in this deque</dd>
  </dl>
  </li>
  </ul>
  <a id="spliterator()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>spliterator</h4>
  <pre class="methodSignature">public&nbsp;<a href="Spliterator.html" title="interface in java.util">Spliterator</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;spliterator()</pre>
  <div class="block">Creates a <em><a href="Spliterator.html#binding">late-binding</a></em>
   and <em>fail-fast</em> <a href="Spliterator.html" title="interface in java.util"><code>Spliterator</code></a> over the elements in this
   deque.
  
   <p>The <code>Spliterator</code> reports <a href="Spliterator.html#SIZED"><code>Spliterator.SIZED</code></a>,
   <a href="Spliterator.html#SUBSIZED"><code>Spliterator.SUBSIZED</code></a>, <a href="Spliterator.html#ORDERED"><code>Spliterator.ORDERED</code></a>, and
   <a href="Spliterator.html#NONNULL"><code>Spliterator.NONNULL</code></a>.  Overriding implementations should document
   the reporting of additional characteristic values.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#spliterator()">spliterator</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="../lang/Iterable.html#spliterator()">spliterator</a></code>&nbsp;in interface&nbsp;<code><a href="../lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>a <code>Spliterator</code> over the elements in this deque</dd>
  <dt><span class="simpleTagLabel">Since:</span></dt>
  <dd>1.8</dd>
  </dl>
  </li>
  </ul>
  <a id="forEach(java.util.function.Consumer)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>forEach</h4>
  <pre class="methodSignature">public&nbsp;void&nbsp;forEach&#8203;(<a href="function/Consumer.html" title="interface in java.util.function">Consumer</a>&lt;? super <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;action)</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../lang/Iterable.html#forEach(java.util.function.Consumer)">Iterable</a></code></span></div>
  <div class="block">Performs the given action for each element of the <code>Iterable</code>
   until all elements have been processed or the action throws an
   exception.  Actions are performed in the order of iteration, if that
   order is specified.  Exceptions thrown by the action are relayed to the
   caller.
   <p>
   The behavior of this method is unspecified if the action performs
   side-effects that modify the underlying source of elements, unless an
   overriding class has specified a concurrent modification policy.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="../lang/Iterable.html#forEach(java.util.function.Consumer)">forEach</a></code>&nbsp;in interface&nbsp;<code><a href="../lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>action</code> - The action to be performed for each element</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified action is null</dd>
  </dl>
  </li>
  </ul>
  <a id="removeIf(java.util.function.Predicate)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeIf</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;removeIf&#8203;(<a href="function/Predicate.html" title="interface in java.util.function">Predicate</a>&lt;? super <a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;filter)</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Collection.html#removeIf(java.util.function.Predicate)">Collection</a></code></span></div>
  <div class="block">Removes all of the elements of this collection that satisfy the given
   predicate.  Errors or runtime exceptions thrown during iteration or by
   the predicate are relayed to the caller.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#removeIf(java.util.function.Predicate)">removeIf</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>filter</code> - a predicate which returns <code>true</code> for elements to be
          removed</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if any elements were removed</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified filter is null</dd>
  </dl>
  </li>
  </ul>
  <a id="removeAll(java.util.Collection)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>removeAll</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;removeAll&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="AbstractCollection.html#removeAll(java.util.Collection)">AbstractCollection</a></code></span></div>
  <div class="block">Removes all of this collection's elements that are also contained in the
   specified collection (optional operation).  After this call returns,
   this collection will contain no elements in common with the specified
   collection.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#removeAll(java.util.Collection)">removeAll</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#removeAll(java.util.Collection)">removeAll</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>c</code> - collection containing elements to be removed from this collection</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this collection changed as a result of the
           call</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if this collection contains one or more
           null elements and the specified collection does not support
           null elements
           (<a href="../../../java.base/java/util/Collection.html#optional-restrictions">optional</a>),
           or if the specified collection is null</dd>
  <dt><span class="seeLabel">See Also:</span></dt>
  <dd><a href="AbstractCollection.html#remove(java.lang.Object)"><code>AbstractCollection.remove(Object)</code></a>, 
  <a href="AbstractCollection.html#contains(java.lang.Object)"><code>AbstractCollection.contains(Object)</code></a></dd>
  </dl>
  </li>
  </ul>
  <a id="retainAll(java.util.Collection)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>retainAll</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;retainAll&#8203;(<a href="Collection.html" title="interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</pre>
  <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="AbstractCollection.html#retainAll(java.util.Collection)">AbstractCollection</a></code></span></div>
  <div class="block">Retains only the elements in this collection that are contained in the
   specified collection (optional operation).  In other words, removes from
   this collection all of its elements that are not contained in the
   specified collection.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#retainAll(java.util.Collection)">retainAll</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#retainAll(java.util.Collection)">retainAll</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>c</code> - collection containing elements to be retained in this collection</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this collection changed as a result of the call</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if this collection contains one or more
           null elements and the specified collection does not permit null
           elements
           (<a href="../../../java.base/java/util/Collection.html#optional-restrictions">optional</a>),
           or if the specified collection is null</dd>
  <dt><span class="seeLabel">See Also:</span></dt>
  <dd><a href="AbstractCollection.html#remove(java.lang.Object)"><code>AbstractCollection.remove(Object)</code></a>, 
  <a href="AbstractCollection.html#contains(java.lang.Object)"><code>AbstractCollection.contains(Object)</code></a></dd>
  </dl>
  </li>
  </ul>
  <a id="contains(java.lang.Object)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>contains</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;contains&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</pre>
  <div class="block">Returns <code>true</code> if this deque contains the specified element.
   More formally, returns <code>true</code> if and only if this deque contains
   at least one element <code>e</code> such that <code>o.equals(e)</code>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#contains(java.lang.Object)">contains</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#contains(java.lang.Object)">contains</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#contains(java.lang.Object)">contains</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>o</code> - object to be checked for containment in this deque</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this deque contains the specified element</dd>
  </dl>
  </li>
  </ul>
  <a id="remove(java.lang.Object)">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>remove</h4>
  <pre class="methodSignature">public&nbsp;boolean&nbsp;remove&#8203;(<a href="../lang/Object.html" title="class in java.lang">Object</a>&nbsp;o)</pre>
  <div class="block">Removes a single instance of the specified element from this deque.
   If the deque does not contain the element, it is unchanged.
   More formally, removes the first element <code>e</code> such that
   <code>o.equals(e)</code> (if such an element exists).
   Returns <code>true</code> if this deque contained the specified element
   (or equivalently, if this deque changed as a result of the call).
  
   <p>This method is equivalent to <a href="#removeFirstOccurrence(java.lang.Object)"><code>removeFirstOccurrence(Object)</code></a>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#remove(java.lang.Object)">remove</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Deque.html#remove(java.lang.Object)">remove</a></code>&nbsp;in interface&nbsp;<code><a href="Deque.html" title="interface in java.util">Deque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#remove(java.lang.Object)">remove</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>o</code> - element to be removed from this deque, if present</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd><code>true</code> if this deque contained the specified element</dd>
  </dl>
  </li>
  </ul>
  <a id="clear()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>clear</h4>
  <pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
  <div class="block">Removes all of the elements from this deque.
   The deque will be empty after this call returns.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#clear()">clear</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#clear()">clear</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  </dl>
  </li>
  </ul>
  <a id="toArray()">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>toArray</h4>
  <pre class="methodSignature">public&nbsp;<a href="../lang/Object.html" title="class in java.lang">Object</a>[]&nbsp;toArray()</pre>
  <div class="block">Returns an array containing all of the elements in this deque
   in proper sequence (from first to last element).
  
   <p>The returned array will be "safe" in that no references to it are
   maintained by this deque.  (In other words, this method must allocate
   a new array).  The caller is thus free to modify the returned array.
  
   <p>This method acts as bridge between array-based and collection-based
   APIs.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#toArray()">toArray</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#toArray()">toArray</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>an array containing all of the elements in this deque</dd>
  </dl>
  </li>
  </ul>
  <a id="toArray(java.lang.Object[])">
  <!--   -->
  </a><a id="toArray(T[])">
  <!--   -->
  </a>
  <ul class="blockList">
  <li class="blockList">
  <h4>toArray</h4>
  <pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T[]&nbsp;toArray&#8203;(T[]&nbsp;a)</pre>
  <div class="block">Returns an array containing all of the elements in this deque in
   proper sequence (from first to last element); the runtime type of the
   returned array is that of the specified array.  If the deque 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 deque.
  
   <p>If this deque fits in the specified array with room to spare
   (i.e., the array has more elements than this deque), the element in
   the array immediately following the end of the deque is set to
   <code>null</code>.
  
   <p>Like the <a href="#toArray()"><code>toArray()</code></a> 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.
  
   <p>Suppose <code>x</code> is a deque known to contain only strings.
   The following code can be used to dump the deque into a newly
   allocated array of <code>String</code>:
  
   <pre> <code>String[] y = x.toArray(new String[0]);</code></pre>
  
   Note that <code>toArray(new Object[0])</code> is identical in function to
   <code>toArray()</code>.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
  <dd><code><a href="Collection.html#toArray(T%5B%5D)">toArray</a></code>&nbsp;in interface&nbsp;<code><a href="Collection.html" title="interface in java.util">Collection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="AbstractCollection.html#toArray(T%5B%5D)">toArray</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCollection.html" title="class in java.util">AbstractCollection</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;</code></dd>
  <dt><span class="paramLabel">Type Parameters:</span></dt>
  <dd><code>T</code> - the component type of the array to contain the collection</dd>
  <dt><span class="paramLabel">Parameters:</span></dt>
  <dd><code>a</code> - the array into which the elements of the deque are to
            be stored, if it is big enough; otherwise, a new array of the
            same runtime type is allocated for this purpose</dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>an array containing all of the elements in this deque</dd>
  <dt><span class="throwsLabel">Throws:</span></dt>
  <dd><code><a href="../lang/ArrayStoreException.html" title="class in java.lang">ArrayStoreException</a></code> - if the runtime type of the specified array
           is not a supertype of the runtime type of every element in
           this deque</dd>
  <dd><code><a href="../lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - if the specified array is null</dd>
  </dl>
  </li>
  </ul>
  <a id="clone()">
  <!--   -->
  </a>
  <ul class="blockListLast">
  <li class="blockList">
  <h4>clone</h4>
  <pre class="methodSignature">public&nbsp;<a href="ArrayDeque.html" title="class in java.util">ArrayDeque</a>&lt;<a href="ArrayDeque.html" title="type parameter in ArrayDeque">E</a>&gt;&nbsp;clone()</pre>
  <div class="block">Returns a copy of this deque.</div>
  <dl>
  <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
  <dd><code><a href="../lang/Object.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../lang/Object.html" title="class in java.lang">Object</a></code></dd>
  <dt><span class="returnLabel">Returns:</span></dt>
  <dd>a copy of this deque</dd>
  <dt><span class="seeLabel">See Also:</span></dt>
  <dd><a href="../lang/Cloneable.html" title="interface in java.lang"><code>Cloneable</code></a></dd>
  </dl>
  </li>
  </ul>
  </li>
  </ul>
  </section>
  </li>
  </ul>
  </div>
  </div>
  </main>
  <!-- ========= END OF CLASS DATA ========= -->
  <footer role="contentinfo">
  <nav role="navigation">
  <!-- ======= START OF BOTTOM NAVBAR ====== -->
  <div class="bottomNav"><a id="navbar.bottom">
  <!--   -->
  </a>
  <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
  <a id="navbar.bottom.firstrow">
  <!--   -->
  </a>
  <ul class="navList" title="Navigation">
  <li><a href="../../../index.html">Overview</a></li>
  <li><a href="../../module-summary.html">Module</a></li>
  <li><a href="package-summary.html">Package</a></li>
  <li class="navBarCell1Rev">Class</li>
  <li><a href="class-use/ArrayDeque.html">Use</a></li>
  <li><a href="package-tree.html">Tree</a></li>
  <li><a href="../../../deprecated-list.html">Deprecated</a></li>
  <li><a href="../../../index-files/index-1.html">Index</a></li>
  <li><a href="../../../help-doc.html">Help</a></li>
  </ul>
  <div class="aboutLanguage"><div style="margin-top: 14px;"><strong>Java SE 12 &amp; JDK 12</strong> </div></div>
  </div>
  <div class="subNav">
  <div>
  <ul class="subNavList">
  <li>Summary:&nbsp;</li>
  <li>Nested&nbsp;|&nbsp;</li>
  <li>Field&nbsp;|&nbsp;</li>
  <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
  <li><a href="#method.summary">Method</a></li>
  </ul>
  <ul class="subNavList">
  <li>Detail:&nbsp;</li>
  <li>Field&nbsp;|&nbsp;</li>
  <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
  <li><a href="#method.detail">Method</a></li>
  </ul>
  </div>
  </div>
  <a id="skip.navbar.bottom">
  <!--   -->
  </a>
  <!-- ======== END OF BOTTOM NAVBAR ======= -->
  </nav>
  <p class="legalCopy"><small><a href="https://bugreport.java.com/bugreport/">Report a bug or suggest an enhancement</a><br> For further API reference and developer documentation see the <a href="https://docs.oracle.com/pls/topic/lookup?ctx=javase12.0.2&amp;id=homepage" target="_blank">Java SE Documentation</a>, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.<br> Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.<br> <a href="../../../../legal/copyright.html">Copyright</a> &copy; 1993, 2019, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.<br>All rights reserved. Use is subject to <a href="https://www.oracle.com/technetwork/java/javase/terms/license/java12.0.2speclicense.html">license terms</a> and the <a href="https://www.oracle.com/technetwork/java/redist-137594.html">documentation redistribution policy</a>. <!-- Version 12.0.2+10 --></small></p>
  </footer>
  </body>
  </html>
  