Generalmente iteramos a través de la lista cuando agregamos números enteros en un rango, pero java.util.stream.Stream tiene un método sum() que cuando se usa con filter() da el resultado requerido fácilmente.
Java
// Simple method (without filter) to find sum of a list import java.util.*; class Addition { public static void main(String[] args) { // create a list of integers List<Integer> list = new ArrayList<Integer>(); // add elements to the list list.add(1); list.add(5); list.add(6); list.add(7); list.add(8); list.add(9); list.add(10); System.out.println(sum(list)); } public static int sum(List<Integer> list) { // iterator for accessing the elements Iterator<Integer> it = list.iterator(); int res = 0; while (it.hasNext()) { int num = it.next(); // adding the elements greater than 5 if (num > 5) { res += num; } } return res; } }
Producción:
40
La tarea anterior se puede realizar fácilmente usando el método sum() con el método filter()
Java
// Using stream filter to find sum of a list import java.util.*; class Addition { public static void main(String[] args) { // create a list of integers List<Integer> list = new ArrayList<Integer>(); // add elements to the list list.add(1); list.add(5); list.add(6); list.add(7); list.add(8); list.add(9); list.add(10); System.out.println(sum(list)); } public static int sum(List<Integer> list) { // create a stream of integers // filter the stream // add the integers return list.stream() .filter(i -> i > 5) .mapToInt(i -> i) .sum(); } }
Producción:
40