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.