code: public static <T> Optional<T> find(final Iterable<? extends T> iterable, final Predicate<? super T> predicate) {
          checkNotNull(iterable, "iterable may not be null");
          checkNotNull(predicate, "the predicate may not be null");
          for (T t : iterable) {
              if (predicate.test(t)) {
                  return of(t);
              }
          }
          return Optional.empty();
      }
docs: Apply a predicate to an iterable, returning an optional of the first element where the predicate is true,
  or empty if no true is found.
  
  @param iterable  the iterable to traverse
  @param predicate the predicate to test
  @param <T>       they type of the iterable and predicate
  @return an optional of the first element where the predicate is true, or empty if no true is found.