Sobes.tech
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());