В следующем методе я хочу заменить forEach l oop потоком.
protected Set<String> getSelectedPaths(final CheckModel<TreeItem<String>> checkModel, final LazyTreeItem root) {
final Set<String> ceckedList = new HashSet<>();
final List<TreeItem<String>> children = root.getChildren();
final List<LazyTreeItem> lazyChildren = children.stream().map((item -> (LazyTreeItem) item))
.collect(Collectors.toList());
final List<String> selectedChildren = new ArrayList<>();
children.forEach(child -> selectedChildren.addAll(getSelectedPaths(checkModel, (LazyTreeItem) child)));
/**
* do sth with checkedList
*/
return checkedList
строки
final List<String> selectedChildren = new ArrayList<>();
children.forEach(child -> selectedChildren.addAll(getSelectedPaths(checkModel, (LazyTreeItem) child)));
должны быть заменены потоком. Я пытался с
final List<String> selectedChildren = children.stream().map(child->getSelectedPaths(checkModel, (LazyTreeItem) child)).collect(Collectors.toList());
, но ошибка компилятора "
Type mismatch: cannot convert from List<Set<String>> to List<String>"
выдается. Есть ли возможность заменить это для каждого l oop потоком?