public static <T> Iterator<T> create(@NotNull Iterator<? extends T> iterator, @NotNull Predicate<? super T> condition) {
    if (condition == Conditions.alwaysTrue()) {
      return (Iterator<T>)iterator;
    }
    return new FilteringIterator<>(condition, iterator);
  }
public static <T> Iterator<T> create(@NotNull Iterator<? extends T> iterator, @NotNull Predicate<? super T> condition)