Java 函数式编程:流、接口与结果收集
1. 原始类型流的特殊情况
在 Java 中,原始类型流(如 DoubleStream 、 IntStream 等)有一些特殊的使用情况。例如,下面的代码创建了一个无限的双精度流:
DoubleStream doubles = DoubleStream.generate(() -> Math.PI);
OptionalDouble min = doubles.min(); // runs infinitely
这里的 min() 方法会无限运行,因为流是无限的。同时,对于原始类型流的统计操作也有一些需要注意的地方。
1.1 总结统计
我们可以从 IntStream 中获取最大值,如果流为空,则抛出异常:
private static int max(IntStream ints) {
OptionalInt optional = ints.max();
return optional.orElseThrow(RuntimeException::new);
}
若要计算 IntStream 的范围(最大值减去最小值),由于 min() 和 max() 是终端操作,不能对同一个流运行
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



