code: public boolean remove(Object o) {
  		hashCodeUpToDate = false;
  		if (o == null) {
  			for (int index = 0; index < size; index++)
  				if (elementData[index] == null) {
  					fastRemove(index);
  					return true;
  				}
  		} else {
  			for (int index = 0; index < size; index++)
  				if (o.equals(elementData[index])) {
  					fastRemove(index);
  					return true;
  				}
  		}
  		return false;
  	}
docs: Removes the first occurrence of the specified element from this list, if
  it is present. If the list does not contain the element, it is unchanged.
  More formally, removes the element with the lowest index <tt>i</tt> such
  that
  <tt>(o==null&nbsp;?&nbsp;get(i)==null&nbsp;:&nbsp;o.equals(get(i)))</tt>
  (if such an element exists). Returns <tt>true</tt> if this list contained
  the specified element (or equivalently, if this list changed as a result
  of the call).
  
  @param o
  element to be removed from this list, if present
  @return <tt>true</tt> if this list contained the specified element