--- a/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java Wed May 01 15:08:31 2013 -0700
+++ b/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java Thu May 02 09:18:56 2013 -0700
@@ -39,6 +39,9 @@
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.DoubleStream;
+import java.util.stream.IntStream;
+import java.util.stream.LongStream;
/**
* A random number generator isolated to the current thread. Like the
@@ -241,6 +244,26 @@
return offset + nextInt((int) n);
}
+ @Override
+ public IntStream ints() {
+ return IntStream.generate(() -> current().nextInt());
+ }
+
+ @Override
+ public LongStream longs() {
+ return LongStream.generate(() -> current().nextLong());
+ }
+
+ @Override
+ public DoubleStream doubles() {
+ return DoubleStream.generate(() -> current().nextDouble());
+ }
+
+ @Override
+ public DoubleStream gaussians() {
+ return DoubleStream.generate(() -> current().nextGaussian());
+ }
+
/**
* Returns a pseudorandom, uniformly distributed value between the
* given least value (inclusive) and bound (exclusive).