code: @NotNull
      public Optional<T> findFirst() {
          if (iterator.hasNext()) {
              return Optional.of(iterator.next());
          }
          return Optional.empty();
      }
docs: Returns the first element wrapped by {@code Optional} class.
  If stream is empty, returns {@code Optional.empty()}.
  
  <p>This is a short-circuiting terminal operation.
  
  @return an {@code Optional} with the first element
  or {@code Optional.empty()} if stream is empty