¿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()
enIntStream.range(start, end).toArray()
es muy lento.
Yo uso MersenneTwister para barajar matrices. (Descargué la clase MersenneTwister en línea.) No creo que haya una manera de barajarIntStream
usando MersenneTwister.
No creo que solo consigaint
números destart
aend-1
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
?