Cómo calcular la suma de la lista mediante la corriente?

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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=224417&siteId=1
Recomendado
Clasificación