**Statement:** Let’s say you have a list of integers which you want to group into **even** and **odd** numbers.

**Create a list of integers with four values 1,2,3 and 4:**

List<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4);

**Now group the list into odd and even numbers:**

Map<String, List<Integer>> numberGroups= numbers.stream().collect(Collectors.groupingBy(i -> i%2 != 0 ? "ODD" : "EVEN"));

This returns a map of (“ODD/EVEN” -> numbers).

**Printing the segregated list along with its offset (ODD/EVEN):**

for (String offset : numberGroups.keySet()) { for (Integer i : numberGroups.get(offset)) { System.out.println(offset +":"+i); } }

**Outputs:**

EVEN:2 EVEN:4 ODD:1 ODD:3

Refer Github for complete program.