Потокпротив DoubleStream - PullRequest
       4

Потокпротив DoubleStream

0 голосов
/ 04 июня 2018

Я должен преобразовать массив двойных значений в поток. В чем разница между двумя подходами?Какой из них лучше?

 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 голосов
/ 04 июня 2018

Помимо того, что они различны?

DoubleStream можно рассматривать как Stream<Double> (но как примитив), в то время как Stream<double[]> является потоком из массива s.

0 голосов
/ 04 июня 2018

Stream.of и Arrays.stream - совершенно разные вещи для разных целей и, следовательно, не должны сравниваться.

Stream.of при передаче одномерного массива, как в вашем примере, приведет к потоку с однимэлемент - это сам массив, который в большинстве случаев не тот, который вы хотите.

Arrays.stream, как следует из названия, работает с массивами , тогда как Stream.of является более общим.

Было бы лучше и интереснее, если бы вы спросили, чторазница между DoubleStream.of(dArray) и Arrays.stream(dArray).

0 голосов
/ 04 июня 2018

Очевидно, Stream.of(dArray) дает вам Stream<double[]>, единственным элементом которого является входной массив, что, вероятно, не то, что вам нужно.Вы могли бы использовать этот подход, если бы ваш ввод был Double[] вместо примитивного массива, с тех пор вы бы получили Stream<Double> элементов массива.

Следовательно, Arrays.stream(dArray) - это путь кидти, когда вам нужно преобразовать массив double с в поток double с.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...