@Override
    public F next() {
      checkConcurrent();
      final int next = forward ? cursor + 1 : cursor;

      if (filterlist.resync(next) >= size) {
        throw new NoSuchElementException("next() is beyond the end of the Iterator");
      }

      cursor = next;
      forward = true;
      canremove = true;
      canset = true;
      return filterlist.get(cursor);
    }
@Override
    public F next()