Robert:
Tengo un List<Integer>
igual { 1, 2, 3 ,4, 5 }
, me gustaría obtener el resultado como 12345
.
¿Cómo hacer esto usando corrientes Java8 o cualquier forma inteligente?
List
consta de números enteros no negativos de un solo dígito.
Sin duda que podía hacer como 1*10000+ 2 * 1000 + 3*100 + 4*10 + 5
, pero es bastante tedioso.
Andy Turner:
utilizar IntStream.reduce
:
int n = IntStream.of(array).reduce(0, (a,b) -> 10*a + b)
Esto es efectivamente lo mismo que:
int n = 0;
for (int b : array) {
n = 10 * n + b;
}
En lo personal, yo optaría por este último, en ausencia de otras restricciones, ya que es mucho más simple código, no implica el marco corrientes relativamente pesado, más fácil de depurar, etc.