< prev index next >

src/java.base/share/classes/java/util/stream/Stream.java

Print this page
rev 53930 : 8148917: enhanced-for statement should allow streams
Reviewed-by: XXX

*** 1,7 **** /* ! * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 101,111 **** * provide a means to directly access or manipulate their elements, and are * instead concerned with declaratively describing their source and the * computational operations which will be performed in aggregate on that source. * However, if the provided stream operations do not offer the desired * functionality, the {@link #iterator()} and {@link #spliterator()} operations ! * can be used to perform a controlled traversal. * * <p>A stream pipeline, like the "widgets" example above, can be viewed as * a <em>query</em> on the stream source. Unless the source was explicitly * designed for concurrent modification (such as a {@link ConcurrentHashMap}), * unpredictable or erroneous behavior may result from modifying the stream --- 101,115 ---- * provide a means to directly access or manipulate their elements, and are * instead concerned with declaratively describing their source and the * computational operations which will be performed in aggregate on that source. * However, if the provided stream operations do not offer the desired * functionality, the {@link #iterator()} and {@link #spliterator()} operations ! * can be used to perform a controlled traversal. Stream implements the ! * {@link IterableOnce} interface, allowing a stream instance to be used ! * in an enhanced-for ("for each") statement. Note that this statement implicitly ! * calls the {@code iterator()} method, which consumes the stream. The stream ! * thus cannot be used for any subsequent operations. * * <p>A stream pipeline, like the "widgets" example above, can be viewed as * a <em>query</em> on the stream source. Unless the source was explicitly * designed for concurrent modification (such as a {@link ConcurrentHashMap}), * unpredictable or erroneous behavior may result from modifying the stream
*** 162,172 **** * @see IntStream * @see LongStream * @see DoubleStream * @see <a href="package-summary.html">java.util.stream</a> */ ! public interface Stream<T> extends BaseStream<T, Stream<T>> { /** * Returns a stream consisting of the elements of this stream that match * the given predicate. * --- 166,184 ---- * @see IntStream * @see LongStream * @see DoubleStream * @see <a href="package-summary.html">java.util.stream</a> */ ! public interface Stream<T> extends BaseStream<T, Stream<T>>, IterableOnce<T> { ! ! // Need to re-abstract spliterator() to avoid inheriting the default ! // method from Iterable. ! /** ! * {@inheritDoc} ! * @return {@inheritDoc} ! */ ! Spliterator<T> spliterator(); /** * Returns a stream consisting of the elements of this stream that match * the given predicate. *
< prev index next >