@Override public void close() { try (Closeable ignored = toClose) { super.close(); iterator = null; } catch (IOException e) { throw new UncheckedIOException(e); } } }
private Stream<T> stream() { if (stream == null) { stream = Streams.stream(iterator()); } return stream; }
@Override public Optional<T> min(Comparator<? super T> comparator) { return stream().min(comparator); }
@Override public IntStream mapToInt(ToIntFunction<? super T> mapper) { return stream().mapToInt(mapper); }
@Override public void close() { try (Closeable ignored = toClose) { super.close(); iterator = null; } catch (IOException e) { throw new UncheckedIOException(e); } } }
private Stream<T> stream() { if (stream == null) { stream = Streams.stream(iterator()); } return stream; }
@Override public Stream<T> sorted() { return stream().sorted(); }
@Override public Stream<T> sorted(Comparator<? super T> comparator) { return stream().sorted(comparator); }
@Override public Optional<T> reduce(BinaryOperator<T> accumulator) { return stream().reduce(accumulator); }
@Override public <U> U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner) { return stream().reduce(identity, accumulator, combiner); }
@Override public long count() { return stream().count(); }
@Override public boolean noneMatch(Predicate<? super T> predicate) { return stream().noneMatch(predicate); }
@Override public Optional<T> findFirst() { return stream().findFirst(); }
@Override public LongStream mapToLong(ToLongFunction<? super T> mapper) { return stream().mapToLong(mapper); }
@Override public DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper) { return stream().mapToDouble(mapper); }
@Override public Stream<T> peek(Consumer<? super T> action) { return stream().peek(action); }
@Override public Stream<T> limit(long maxSize) { return stream().limit(maxSize); }
@Override public Object[] toArray() { return stream().toArray(); }
@Override public T reduce(T identity, BinaryOperator<T> accumulator) { return stream().reduce(identity, accumulator); }
@Override public boolean allMatch(Predicate<? super T> predicate) { return stream().allMatch(predicate); }