Quando devo usar o IntStream.range em Java?
Gostaria de saber quando posso usarIntStream.range
efetivamente. Tenho três razões pelas quais não tenho certeza de quão útilIntStream.range
é.
(Pense no início e no final como números inteiros.)
Se eu quero uma matriz,[start, start+1, ..., end-2, end-1]
, o código abaixo é muito mais rápido.
int[] arr = new int[end - start];
int index = 0;
for(int i = start; i < end; i++)
arr[index++] = i;
Isto é provavelmente porquetoArray()
noIntStream.range(start, end).toArray()
é muito lento.
Eu uso o MersenneTwister para embaralhar matrizes. (Eu baixei a classe MersenneTwister online.) Acho que não há uma maneira de embaralhar.IntStream
usando MersenneTwister.
Eu não acho que apenas ficandoint
números destart
paraend-1
é útil. Eu posso usarfor(int i = start; i < end; i++)
, o que parece mais fácil e não lento.
Você poderia me dizer quando devo escolherIntStream.range
?