code: @CanIgnoreReturnValue
    public static <T> boolean removeIf(Iterator<T> removeFrom, Predicate<? super T> predicate) {
      checkNotNull(predicate);
      boolean modified = false;
      while (removeFrom.hasNext()) {
        if (predicate.apply(removeFrom.next())) {
          removeFrom.remove();
          modified = true;
        }
      }
      return modified;
    }
docs: Removes every element that satisfies the provided predicate from the iterator. The iterator
  will be left exhausted: its {@code hasNext()} method will return {@code false}.
  
  @param removeFrom the iterator to (potentially) remove elements from
  @param predicate a predicate that determines whether an element should be removed
  @return {@code true} if any elements were removed from the iterator
  @since 2.0