Junior — Senior
65
Повторное применение Stream API для сбора в разные структуры
Условие задачи
Есть поток Stream<A> stream, к которому последовательно применяются операции .map(...) и .filter(...). Нужно выполнить два разных сбора результатов:
- первый собрать в
Set<A>; - второй собрать в
List<A>.
Почему попытка вызвать второй collect(...) может привести к ошибке? Требуется переписать код так, чтобы оба сбора были возможны.
Stream<A> stream = ...map(...).filter(...);
Set<A> resultSet = stream.collect(Collectors.toSet());
List<A> resultList = stream.collect(Collectors.toList());