185. Working with mapMulti()
Starting with JDK 16, the Stream API was enriched with a new intermediate operation, named mapMulti(). This operation is represented by the following default method in the Stream interface:
default <R> Stream<R> mapMulti (
  BiConsumer<? super T, ? super Consumer<R>> mapper)
    Let’s follow the learning-by-example approach and consider the next classical example, which uses a combination of filter() and map() to filter even integers and double their value:
List<Integer> integers = List.of(3, 2, 5, 6, 7, 8);
List<Integer> evenDoubledClassic = integers.stream()
  .filter(i -> i % 2 == 0)
  .map(i -> i * 2)
  .collect(toList());
    The same result can be obtained via mapMulti() as follows:
List<Integer> evenDoubledMM = integers.stream()
  .<Integer>mapMulti((i, consumer) -> {
     if (i % 2 == 0) {
       consumer.accept(i * 2);
     }
  })
  .collect(toList());
    So instead...