Z 1 streamowanej listy chcę wziąć 1 element i dalej go przetwarzać:
public List<T> scrape(String textToSearchIn) {
textToSearchIn = lineFinder.findLinesWithWantedTraitIn(text).stream()
.findFirst()
.orElse(textToSearchIn);
return fragmentsFinder.findFragmentsWithWantedTraitIn(text).stream()
.flatMap(fragment -> valueFinder.findTraitValuesIn(fragment).stream())
.map(conveterStringToT)
.filter(isTraitValueValidPredicate)
.collect(Collectors.toList());
}
czy jest jakiś w miarę rozsądnie nietrudny sposób by połączyć te streamy?
dodaję typy:
List<String> findLinesWithWantedTraitIn(String text);
List<String> findFragmentsWithWantedTraitIn(String text);
List<String> findTraitValuesIn(String textToSearchIn);
Function<String, Integer> conveterStringToT
Predicate<String> isTraitValueValidPredicate