java 8 的 java.util.random 类提供了 doubles() 方法,可以直接生成一个无限长度的 doublestream。要获取指定数量的双精度数,只需调用该方法并配合 limit() 操作即可。例如,调用 random.doubles(10) 会返回包含 10 个随机双精度数的流。

如何限制生成的随机数数量?
通过 limit() 方法可以截断无限流。在 Random 实例上调用 doubles() 后,链式调用 limit(n) 即可得到长度为 n 的流。默认情况下,生成的数值范围是 [0.0, 1.0)。

import java.util.Random;
import java.util.stream.DoubleStream;
public class Main {
public static void main(String[] args) {
Random random = new Random();
// 生成 5 个随机双精度数
DoubleStream stream = random.doubles().limit(5);
// 打印结果
stream.forEach(System.out::println);
}
}
运行上述代码将输出 5 个介于 0.0 和 1.0 之间的随机双精度数。由于 DoubleStream 是顺序流,每个元素只会被消费一次。
如何指定随机数的取值范围?
如果需要指定最小值和最大值,可以使用 doubles(double randomNumberOrigin, double randomNumberBound) 重载方法。该方法生成的数值范围是 [origin, bound)。同样需要配合 limit() 使用。

import java.util.Random;
import java.util.stream.DoubleStream;
public class Main {
public static void main(String[] args) {
Random random = new Random();
// 生成 5 个 [10.0, 20.0) 范围内的随机双精度数
DoubleStream stream = random.doubles(10.0, 20.0).limit(5);
// 打印结果
stream.forEach(System.out::println);
}
}
此代码将输出 5 个大于等于 10.0 且小于 20.0 的随机双精度数。注意边界值:下限包含,上限不包含。
基于 limit(3) 生成的具体结果分析
当使用 random.doubles().limit(3) 时,程序会精确生成 3 个随机双精度数。由于 Random 类的伪随机性质,每次运行结果不同,但类型始终为 double。若需固定种子以复现结果,可在构造 Random 时传入种子值,如 new Random(42)。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











