Robert:
Eu tenho um List<Integer>
gosto { 1, 2, 3 ,4, 5 }
, eu gostaria de obter o resultado como 12345
.
Como fazer isso usando fluxos Java8 ou qualquer forma inteligente?
List
consiste de inteiros não negativos único dígito.
Eu poderia definitivamente gosto 1*10000+ 2 * 1000 + 3*100 + 4*10 + 5
, mas é bastante tedioso.
Andy Turner:
use IntStream.reduce
:
int n = IntStream.of(array).reduce(0, (a,b) -> 10*a + b)
Esta é efetivamente o mesmo que:
int n = 0;
for (int b : array) {
n = 10 * n + b;
}
Pessoalmente, eu iria optar por este último, na ausência de outras restrições, uma vez que é um código muito mais simples, não envolve o quadro fluxos relativamente pesado, mais fácil de depurar etc.