Я хотел бы знать, когда я могу эффективно использовать IntStream.range
. У меня есть три причины, почему я не уверен, насколько полезен IntStream.range
.
(Пожалуйста, подумайте о начале и конце как целые числа.)
-
Если мне нужен массив,
[start, start+1, ..., end-2, end-1]
, код ниже намного быстрее.int[] arr = new int[end - start]; int index = 0; for(int i = start; i < end; i++) arr[index++] = i;
Возможно, это связано с тем, что
toArray()
вIntStream.range(start, end).toArray()
работает очень медленно. -
Я использую MersenneTwister для перетасовки массивов. (Я загрузил класс MersenneTwister в Интернете.) Я не думаю, что есть способ перетасовать
IntStream
с помощью MersenneTwister. -
Я не думаю, что полезно получить только цифры
int
отstart
доend-1
. Я могу использоватьfor(int i = start; i < end; i++)
, что кажется проще и не медленнее.
Не могли бы вы рассказать мне, когда я должен выбрать IntStream.range
?