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

Example Programs