Comment calculer la somme de la liste en utilisant flux?

Robert:

J'ai un List<Integer>comme { 1, 2, 3 ,4, 5 }, je voudrais obtenir le résultat comme 12345.

Comment faire en utilisant les flux Java8 ou une façon intelligente?

List se compose d'un seul chiffre des nombres entiers non négatifs.

Je pourrais certainement faire comme 1*10000+ 2 * 1000 + 3*100 + 4*10 + 5, mais il est assez fastidieux.

Andy Turner:

Utilisez IntStream.reduce:

int n = IntStream.of(array).reduce(0, (a,b) -> 10*a + b)

Ceci est effectivement le même que:

int n = 0;
for (int b : array) {
  n = 10 * n + b;
}

Personnellement, j'opte pour cette dernière en l'absence d'autres contraintes, car il est un code beaucoup plus simple, ne concerne pas le cadre de cours d'eau relativement lourds, plus facile à déboguer etc.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=224415&siteId=1
conseillé
Classement