¿Cuándo debo usar IntStream.range en Java?

Me gustaría saber cuándo puedo usarIntStream.range eficazmente. Tengo tres razones por las que no estoy seguro de cuán útilIntStream.range es.

(Piense en inicio y fin como enteros).

Si quiero una matriz,[start, start+1, ..., end-2, end-1], el siguiente código es mucho más rápido.

int[] arr = new int[end - start];
int index = 0;
for(int i = start; i < end; i++)
    arr[index++] = i;

Esto es probablemente porquetoArray()&nbsp;enIntStream.range(start, end).toArray()&nbsp;es muy lento.

Yo uso MersenneTwister para barajar matrices. (Descargué la clase MersenneTwister en línea.) No creo que haya una manera de barajarIntStream&nbsp;usando MersenneTwister.

No creo que solo consigaint&nbsp;números destart&nbsp;aend-1&nbsp;es útil. Puedo usarfor(int i = start; i < end; i++), que parece más fácil y no lento.

¿Podrías decirme cuándo debería elegir?IntStream.range?