Иногда я хочу выполнить набор операций над потоком, а затем обработать результирующий поток двумя разными способами с помощью других операций.
Могу ли я сделать это, не указывая общие начальные операции дважды?
Например, я надеюсь, что существует метод dup()
, такой как следующее:
Stream [] desired_streams = IntStream.range(1, 100).filter(n -> n % 2 == 0).dup();
Stream stream14 = desired_streams[0].filter(n -> n % 7 == 0); // multiples of 14
Stream stream10 = desired_streams[1].filter(n -> n % 5 == 0); // multiples of 10