Write a Java program using Lambda Expression to find the largest even number in a list of integers
The java program that finds the largest even number in a list of integers using Java Streams and Optional. Here's an explanation of the code:
- An ArrayList named numbers is created to store a list of integers.
- System.out.println("Given Number : " + numbers); prints the original list of numbers.
- The program uses Java Streams to filter and find the largest even number:
- numbers.stream(): This converts the numbers list into a stream of integers.
- .filter(n -> n % 2 == 0): This is a filter operation that retains only the even numbers in the stream. The condition n % 2 == 0 checks if a number is even.
- .max(Integer::compareTo): This finds the maximum even number in the stream. It uses the Integer::compareTo method reference to compare integers and find the maximum value.
- The result of the .max(...) operation is an Optional<Integer> which may or may not contain the largest even number found.
- The program checks if the Optional contains a value using if (largest_even.isPresent()). If it contains a value, it means that at least one even number was found in the list.
- If the Optional contains a value, the largest even number is printed with System.out.println("Largest Even Number : " + largest_even.get());.
- If the Optional is empty (i.e., no even numbers were found), it prints "No even numbers found."
Source Code
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class LargestEvenNumber
{
public static void main(String[] args)
{
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(4);
numbers.add(5);
numbers.add(8);
numbers.add(6);
numbers.add(9);
numbers.add(7);
numbers.add(3);
numbers.add(2);
System.out.println("Given Number : " + numbers);
Optional<Integer> largest_even = numbers.stream().filter(n -> n % 2 == 0).max(Integer::compareTo);
if (largest_even.isPresent())
{
System.out.println("Largest Even Number : " + largest_even.get());
}
else
{
System.out.println("No even numbers found.");
}
}
}
Output
Given Number : [1, 4, 5, 8, 6, 9, 7, 3, 2]
Largest Even Number : 8