1
votes

Comment additionner les nombres entiers dans une liste chaînée

Je dois ajouter les valeurs d'une liste chaînée mais je ne sais pas comment les additionner.

li = list.listIterator();
System.out.println("Here are all the integers");
while (li.hasNext())
System.out.println((li.nextIndex() + 1) + ". " + li.next());

System.out.println("Sum of all integers");
while (li.hasNext())
   System.out.println(li.next());


1 commentaires

N'oubliez pas de réinitialiser votre itérateur après cette première boucle! Et veuillez utiliser des accolades (même si elles sont facultatives).


4 Réponses :


6
votes

Vous pouvez le faire en utilisant java-8

int sum = 0;
for(int i : list)
    sum += i;
System.out.println("Sum of all integers: " + sum);

Ou

En utilisant pre java-8

int sum = list.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum of all integers: " + sum);


0 commentaires

1
votes

La manière Java 7 de faire cela, qui est ce que vous utilisez, serait simplement de garder une trace d'une somme en cours lorsque vous parcourez la liste:

li = list.listIterator();
int sum = 0;

while (li.hasNext()) {
    sum += li.next();
}

System.out.println("total sum is: " + sum);


0 commentaires

0
votes

Utilisation des flux Java 8 avec réduire:

int sum = list.stream (). reduction (0, Integer :: sum); System.out.println (somme);


0 commentaires

0
votes

Veuillez trouver ci-dessous le code, vous pouvez utiliser la méthode de réduction de java 8.

import java.util.Arrays; import java.util.List;

Test de classe publique {

public static void main(String[] args) {

    List<Integer> list= Arrays.asList(1, 2, 3, 4, 5);
    int sum= list.stream().reduce(0, (ans, j)-> ans+j);

    System.out.println("Sum is : "+sum);

}

}


0 commentaires