获取数字流的范围

给定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());

您可以调用DoubleStreamsummaryStatistics方法 。 它返回一个DoubleSummaryStatistics对象,其中包含min和max,以及一些其他统计信息:average,count和sum。

IntStreamLongStream具有类似的summaryStatistics方法。