Segregate Even and Odd numbers using Java8?

There are following way to Segregate Even and Odd numbers using Java8.

  • First convert Arrays to list using Arrays.asList() method.
  • Now get the Stream data from List using arrayList.stream() method.
  • In collect method use Collectors.partitioningBy() collector. this collector partitions the stream in two group.
  • Here e -> e % 2 == 0 check which elements are even numbers.
  • We use map where keys will be true or false and value will be list of integers.
  • Now output will be in form of map. here map.get(true) print the even number and map.get(false) print the odd number.
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SeprateEvenOddNumbers {
	public static void main(String[] args) {
		List<Integer> number = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
		Map<Boolean, List<Integer>> map = number.stream().collect(Collectors.partitioningBy(e -> e % 2 == 0));
		System.out.println("even numbers are :- " + map.get(true) + " ,odd numebrs are :- " + map.get(false));
	}
}

Output :-
even numbers are :- [2, 4, 6, 8, 10] ,odd numebrs are :- [1, 3, 5, 7, 9]