Java 8 溪流<;双[]>;vs双流

Java 8 溪流<;双[]>;vs双流,java-8,double,java-stream,Java 8,Double,Java 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 double[]dArray={1.2,2.3,3.4,4.5}; Stream us

我必须将双值数组转换为流 以下两种方法的区别是什么?哪一个更好

 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
double[]dArray={1.2,2.3,3.4,4.5};
Stream usingStream=Stream.of(dArray)//方法1
DoubleStream UsingArray=数组.stream(dArray)//方法2
显然,
Stream.of(dArray)
提供了一个
,它的单个元素是输入数组,这可能不是您想要的。如果您的输入是一个
Double[]
而不是一个基本数组,那么您可以使用这种方法,因为这样您就可以得到数组元素的

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

显然,
stream.of(dArray)
提供了一个
stream
,它的单个元素是输入数组,这可能不是您想要的。如果您的输入是一个
Double[]
而不是一个基本数组,那么您可以使用这种方法,因为这样您就可以得到数组元素的


因此,
Arrays.stream(dArray)
是将
double
s数组转换为
double
s流的一种方法。

除了它们不同之外


DoubleStream
可以被认为是
Stream
(但作为一个原语),而
Stream
是一个数组流。

除了它们不同之外


DoubleStream
可以被认为是
Stream
(但作为一个原语),而
Stream
是一个数组流。

Stream.of
数组。Stream
对于不同的目的是完全不同的,因此不应该进行比较

Stream.of
当传递一个一维数组(如您的示例中所示)时,将生成一个带有单个元素的流,该数组本身在大多数情况下不是您想要的

Arrays.stream
,以及名称所建议的对数组进行操作,而
stream.of
更为通用


如果你问DoubleStream.of(dArray)
数组之间有什么区别,那就更好了,也更有趣了。stream(dArray)
stream.of
数组。stream
是完全不同的东西,用于不同的目的,因此不应该进行比较

Stream.of
当传递一个一维数组(如您的示例中所示)时,将生成一个带有单个元素的流,该数组本身在大多数情况下不是您想要的

Arrays.stream
,以及名称所建议的对数组进行操作,而
stream.of
更为通用


如果你问DoubleStream.of(dArray)
和数组.stream(dArray)
之间有什么区别,会更好,也会更有趣。我认为(DoubleStream.of(dArray)和数组.stream(dArray))与返回DoubleStream时是一样的。和Arrays.stream()具有多个重载方法来处理不同类型的数组,以在各自类型的流中转换它们..与IntStream类似,LongStream@RajN它们是“相同”的,因为它们都返回一个DoubleStream,但它们不同的是,一个被设计为使用显式类型的值(DoubleStream.of)和另一个用于使用数组(Arrays.stream)。但是有人可能会说DoubleStream.of仍然会在给定双数组时生成正确的值。这都是由于varargs。但是理想情况下,您应该仅在希望传递显式值时使用DoubleStream.of,例如DoubleStream.of(1.0,2.0,3.0)因为它更有意义,这是它的预期目的。因此,是什么让这个问题更有趣。@RajN因为这两个问题在功能上是相同的,但用于不同的目的,我相信它让这个问题在我看来更有趣。我认为这两个问题(DoubleStream.of(dArray)和Arrays.stream(dArray))与返回DoubleStream.And Arrays.stream()相同,后者具有多个重载方法来处理不同类型的数组,以将它们转换为各自类型的流..与IntStream类似,LongStream@RajN他们是“一样的”从某种意义上说,它们都返回一个DoubleStream,但它们的不同之处在于,一个用于使用显式类型的值(DoubleStream.of),另一个用于使用数组(Arrays.stream)。但是,有人可能会说DoubleStream.of仍然会在给定双数组的情况下生成正确的值。这都是由于varargs。。但理想情况下,只有在希望传递显式值时才应该使用DoubleStream.of,例如,DoubleStream.of(1.0,2.0,3.0)因为它更有意义,这是它的预期目的。因此,是什么让这个问题更有趣。@RajN因为这两个问题在功能上是相同的,但目的不同,我相信它让这个问题更有趣。