Я хотел бы знать, когда я могу эффективно использовать 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?