Почему у меня есть следующее исключение?Поток уже оперирован или закрыт - Java 8
Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
at java.util.stream.AbstractPipeline.<init>(AbstractPipeline.java:203)...
com.search.offer.OffersSelector.isGood (OffersSelector.java:23) Как изменить код, чтобы исправить это?
Stream<String> titleExclusions = ResourceUtility.contentToUtf8TreeSet("+.txt").
stream().filter(item -> item.length() == 0).collect(Collectors.toSet()).stream();
//...
titleExclusions.filter(tittle::contains).collect(Collectors.toSet()).size() == 0;//line 23
Пожалуйста, сделайте [mcve]. Ваш код не компилируется. – Tunaki
Вы не можете управлять потоком дважды. Предположительно, вы уже работали над 'titleExclusions' в' // ... '. –
Кстати, вам не нужно собирать в 'Set' все время (в противном случае, если вы хотите сделать свою работу с' Set ', просто сделайте это, не переключаясь на Interface Stream между ними). Так как ваши элементы уже выделены, 'collect (Collectors.toSet()). Size()' точно так же, как 'count()', но 'stream.filter (tittle :: contains) .collect (Collectors.toSet ()). size() == 0' - это то же самое, что просто 'stream.noneMatch (tittle :: contains)' anyway ... – Holger