--- old/src/java.base/share/classes/java/lang/Iterable.java 2015-02-04 10:44:08.801990892 +0100 +++ new/src/java.base/share/classes/java/lang/Iterable.java 2015-02-04 10:44:08.690992950 +0100 @@ -22,13 +22,13 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -package java.lang; +package javany.lang; -import java.util.Iterator; +import javany.util.Iterator; import java.util.Objects; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.function.Consumer; +//import java.util.Spliterator; +//import java.util.Spliterators; +import javany.util.function.Consumer; /** * Implementing this interface allows an object to be the target of @@ -42,7 +42,7 @@ * @since 1.5 * @jls 14.14.2 The enhanced for statement */ -public interface Iterable { +public interface Iterable { /** * Returns an iterator over elements of type {@code T}. * @@ -71,8 +71,12 @@ */ default void forEach(Consumer action) { Objects.requireNonNull(action); - for (T t : this) { - action.accept(t); +// for (T t : this) { +// action.accept(t); +// } + Iterator iterator = iterator(); + while (iterator.hasNext()) { + action.accept(iterator.next()); } } @@ -97,7 +101,7 @@ * {@code Iterable}. * @since 1.8 */ - default Spliterator spliterator() { - return Spliterators.spliteratorUnknownSize(iterator(), 0); - } +// default Spliterator spliterator() { +// return Spliterators.spliteratorUnknownSize(iterator(), 0); +// } }