我必须将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
答案 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.of
和Arrays.stream
因不同目的而完全不同,因此不应进行比较。
Stream.of
在您的示例中传递单维数组时将产生一个流,其中单个元素是数组本身,在大多数情况下,这不是您想要的。
Arrays.stream
,正如名称建议在数组上运行,而Stream.of
则更为通用。
如果您问DoubleStream.of(dArray)
和Arrays.stream(dArray)
之间有什么区别,那会更好,更有趣。