Java Stream API 怎么实现Random.longs生成长整型流
使用 java.util.random 类的 longs() 方法可以直接生成 longstream。该方法返回一个无限或有限长度的伪随机长整型流,通过传入参数可以指定流的长度、最小值和最大值。调用后需配合终止操作(如 collect 或 foreach)来触发计算并获取结果。

如何限制生成的长整型范围与数量
通过重载的 longs(long streamSize, long randomNumberOrigin, long randomNumberBound) 方法,可以精确控制生成的元素个数以及每个元素的取值区间。其中 streamSize 决定流中元素的数量,randomNumberOrigin 为下界(包含),randomNumberBound 为上界(不包含)。若未指定边界,则默认生成所有可能的 long 值;若未指定数量,则生成无限流。

import java.util.Random;
import java.util.stream.LongStream;
public class Main {
public static void main(String[] args) {
Random random = new Random(42);
// 生成5个在[10, 100)范围内的长整型
LongStream stream = random.longs(5, 10, 100);
stream.forEach(System.out::println);
}
}
无限流与有限流的行为差异
当调用无参的 longs() 时,返回的是无限流。由于 Java Stream 是延迟计算的,如果不施加终止操作,程序不会执行任何随机数生成。一旦使用 limit() 等中间操作配合终止操作,流会按需生成指定数量的元素。若直接对无限流进行收集而不加限制,将导致 OutOfMemoryError 或永久阻塞。因此,处理无限流时必须显式指定大小或使用短路操作。

import java.util.Random;
import java.util.stream.LongStream;
public class Main {
public static void main(String[] args) {
Random random = new Random();
// 无限流示例:必须加 limit
long sum = random.longs()
.limit(10)
.sum();
System.out.println("Sum of 10 longs: " + sum);
}
}
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











