jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java
changeset 17421 f3fbcfe6e2cf
parent 16043 0c9424895efb
child 19609 108f52a7438f
--- 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).