code: @NotNull
      public static <T> Stream<T> of(@NotNull Iterator<? extends T> iterator) {
          Objects.requireNonNull(iterator);
          return new Stream<T>(iterator);
      }
docs: Creates a {@code Stream} from any class that implements {@code Iterator} interface.
  
  @param <T> the type of the stream elements
  @param iterator  the iterator with elements to be passed to stream
  @return the new stream
  @throws NullPointerException if {@code iterator} is null