获取数字流的范围
给定DoubleStream s
,我可以执行s.min()
或s.max()
但不能同时执行两者,因为其中任何一个都将使用流。
现在假设我有
class Range /* can add code here */ { private final double min; private final double max; Range(double min, double max){ this.min = min; this.max = max; } // can add code here }
我怎样才能获得流的范围? (除了通过s.collect(Collectors.toList()); new Range(s.stream().min(),s.stream().max());
)
您可以调用DoubleStream
的summaryStatistics
方法 。 它返回一个DoubleSummaryStatistics
对象,其中包含min和max,以及一些其他统计信息:average,count和sum。
IntStream
和LongStream
具有类似的summaryStatistics
方法。