Summing Numbers In this example, we have a list of numbers: 1, 2, 3, 4, and 5. We define a lambda expression Integer::sum
and pass it as a BinaryOperator<Integer>
to the calculate
method. The lambda expression represents the sum
method reference, which calculates the sum of two integers. The calculate
method takes a list of numbers, an initial value, and a BinaryOperator<Integer>
as arguments. It iterates over the numbers and applies the operator using the apply
method, accumulating the result. Finally, it returns the calculated sum.
Finding the Maximum Number In this part of the example, we reuse the calculate
method to find the maximum number in the list. We define a different lambda expression Integer::max
and pass it as the operator. This lambda expression represents the max
method reference, which returns the greater of two integers. Again, the calculate
method iterates over the numbers, applies the operator, and keeps track of the maximum number. Finally, it returns the maximum number found.
import java.util.Arrays;
import java.util.List;
import java.util.function.BinaryOperator;
public class LambdasExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// Title: Summing Numbers
int sum = calculate(numbers, 0, Integer::sum);
System.out.println("Sum: " + sum);
// Title: Finding the Maximum Number
int max = calculate(numbers, Integer.MIN_VALUE, Integer::max);
System.out.println("Max: " + max);
}
private static int calculate(List<Integer> numbers, int initialValue, BinaryOperator<Integer> operator) {
int result = initialValue;
for (Integer number : numbers) {
result = operator.apply(result, number);
}
return result;
}
}