Stream <double []> vs DoubleStream

时间:2018-06-04 09:18:30

标签: java-8 double java-stream

我必须将double值数组转换为stream     以下两种方法有什么区别?哪一个更好?

 double [] dArray = {1.2,2.3,3.4,4.5};
 Stream<double[]> usingStream =  Stream.of(dArray); //approach 1
 DoubleStream usingArrays = Arrays.stream(dArray); //approach 2

3 个答案:

答案 0 :(得分:2)

显然,Stream.of(dArray)会给你一个Stream<double[]>,其单个元素是输入数组,可能不是你想要的。如果您的输入是Double[]而不是原始数组,则可以使用该方法,因为那时您将获得数组元素的Stream<Double>

因此,Arrays.stream(dArray)是您需要将double数组转换为double s流时的方法。

答案 1 :(得分:1)

除了它们不同之外呢?

DoubleStream可以被视为Stream<Double>(但是作为原语),而Stream<double[]>数组的流。

答案 2 :(得分:0)

Stream.ofArrays.stream因不同目的而完全不同,因此不应进行比较。

Stream.of在您的示例中传递单维数组时将产生一个流,其中单个元素是数组本身,在大多数情况下,这不是您想要的。

Arrays.stream,正如名称建议在数组上运行,而Stream.of则更为通用。

如果您问DoubleStream.of(dArray)Arrays.stream(dArray)之间有什么区别,那会更好,更有趣。