--- a/jdk/src/share/classes/java/util/stream/Streams.java Sat Jun 08 09:05:49 2013 -0700
+++ b/jdk/src/share/classes/java/util/stream/Streams.java Mon Jun 10 11:52:32 2013 +0200
@@ -192,87 +192,6 @@
}
}
- /**
- * A {@code double} range spliterator.
- *
- * <p>The traversing and splitting logic is equivalent to that of
- * {@code RangeLongSpliterator} for increasing values with a {@code step} of
- * {@code 1}.
- *
- * <p>A {@code double} value is calculated from the function
- * {@code start + i * step} where {@code i} is the absolute position of the
- * value when traversing an instance of this class that has not been split.
- * This ensures the same values are produced at the same absolute positions
- * regardless of how an instance of this class is split or traversed.
- */
- static final class RangeDoubleSpliterator implements Spliterator.OfDouble {
- private final double from;
- private final double upTo;
- private final double step;
-
- private long lFrom;
- private final long lUpTo;
-
- RangeDoubleSpliterator(double from, double upTo, double step, long lFrom, long lUpTo) {
- this.from = from;
- this.upTo = upTo;
- this.step = step;
- this.lFrom = lFrom;
- this.lUpTo = lUpTo;
- }
-
- @Override
- public boolean tryAdvance(DoubleConsumer consumer) {
- boolean hasNext = lFrom < lUpTo;
- if (hasNext) {
- consumer.accept(from + lFrom * step);
- lFrom++;
- }
- return hasNext;
- }
-
- @Override
- public void forEachRemaining(DoubleConsumer consumer) {
- double hOrigin = from;
- double hStep = step;
- long hLUpTo = lUpTo;
- long i = lFrom;
- for (; i < hLUpTo; i++) {
- consumer.accept(hOrigin + i * hStep);
- }
- lFrom = i;
- }
-
- @Override
- public long estimateSize() {
- return lUpTo - lFrom;
- }
-
- @Override
- public int characteristics() {
- return Spliterator.ORDERED | Spliterator.SIZED | Spliterator.SUBSIZED |
- Spliterator.IMMUTABLE | Spliterator.NONNULL |
- Spliterator.DISTINCT | Spliterator.SORTED;
- }
-
- @Override
- public Comparator<? super Double> getComparator() {
- return null;
- }
-
- @Override
- public Spliterator.OfDouble trySplit() {
- return estimateSize() <= 1
- ? null
- : new RangeDoubleSpliterator(from, upTo, step, lFrom, lFrom = lFrom + midPoint());
- }
-
- private long midPoint() {
- // Size is known to be >= 2
- return (lUpTo - lFrom) / 2;
- }
- }
-
private static abstract class AbstractStreamBuilderImpl<T, S extends Spliterator<T>> implements Spliterator<T> {
// >= 0 when building, < 0 when built
// -1 == no elements