Suma de lista con filtro de flujo en Java

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

 

Publicación traducida automáticamente

Artículo escrito por akash1295 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *