code: public boolean contains(int o) {
  
          int readLocation = this.readLocation;
          int writeLocation = this.writeLocation;
  
          for (; ; ) {
  
              if (readLocation == writeLocation)
                  return false;
  
              if (o == data[readLocation])
                  return true;
  
              // sets the readLocation my moving it on by 1, this may cause it it wrap back to the start.
              readLocation = (readLocation + 1 == capacity) ? 0 : readLocation + 1;
  
          }
  
  
      }
docs: Returns <tt>true</tt> if this queue contains the specified element. More formally, returns
  <tt>true</tt> if and only if this queue contains at least one element <tt>e</tt> such that
  <tt>o.equals(e)</tt>. The behavior of this operation is undefined if modified while the operation is in
  progress.
  
  @param o object to be checked for containment in this queue
  @return <tt>true</tt> if this queue contains the specified element
  @throws ClassCastException   if the class of the specified element is incompatible with this queue (<a
  href="../Collection.html#optional-restrictions">optional</a>)
  @throws NullPointerException if the specified element is null (<a href="../Collection.html#optional-restrictions">optional</a>)