We generally iterate through the list when adding integers in a range, but java.util.stream.Stream has a sum() method that when used with filter() gives the required result easily.
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; } } |
40
The above task can be easily performed using sum() method with filter() method
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(); } } |
40