code: @Nullable
    public static <T> T find(
        Iterator<? extends T> iterator, Predicate<? super T> predicate, @Nullable T defaultValue) {
      return getNext(filter(iterator, predicate), defaultValue);
    }
docs: Returns the first element in {@code iterator} that satisfies the given
  predicate. If no such element is found, {@code defaultValue} will be
  returned from this method and the iterator will be left exhausted: its
  {@code hasNext()} method will return {@code false}. Note that this can
  usually be handled more naturally using {@code
  tryFind(iterator, predicate).or(defaultValue)}.
  
  @since 7.0