boolean () { canRemove = false; if (nextObject != null) { return true; } while (iterator.hasNext()) { final Object obj = iterator.next(); final T f = filter.filter(obj); if (f != null) { nextObject = f; return true; } } return false; }