Java8 find the sum of even numbers square using lambda expression
Below are the code to get sum of even numbers square using lambda expression.
public static void main(String[] args) { List<Integer> listInt = Arrays.asList(1, 2, 3, 4, 5); IntSummaryStatistics summaryStatistics= listInt.stream(). filter((i)->i%2==0 ).mapToInt((i)->+i*i).summaryStatistics(); System.out.println(summaryStatistics.getSum()); }
In line 2 we have created a list of integer and assign it to a variable called listInt.
In line 3 we created a return type IntSummaryStatistics
On the right side we created a stream listInt.stream() of that list .
In line 3 we applied a filter which is filtering only even numbers filter((i)->i%2==0 ).
Filter() accepts predicate as a argument , predicate interface given below to check the condition and return boolean response. Its a functional interface has a method called test which takes a parameter and return boolean response.
@FunctionalInterface public interface Predicate<T> { boolean test(T t); }
after that we mapped the result in Int type and while mapping the result we square all the even numbers mapToInt((i)->+i*i). At last we called the summary statistics and collect the entire data summaryStatistics();
In line 4 we used the collected data and get the sum of all values.
Find more about streams basics in the link.
No comments: