@Override
    public void remove() {
      if (lastRet < 0) {
        throw new NoSuchElementException();
      }

      //noinspection unchecked
      E e = (E)snapshot[lastRet];
      lastRet = -1;
      LockFreeCopyOnWriteArrayList.this.remove(e);
    }
@Override
    public void remove()