List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
List<Integer> addList=new ArrayList<Integer>();
for(String listobj:myList) {
String appendedobj=listobj+"%";
List<Integer> intlist=myMethod(appendedobj,listobj);
addList.addAll(intlist);
}
public list<Integer> mymethod(appendedobj,listobj)
{
do something and retrurn list of integers;
}
Я хочу преобразовать это в код java 8 Stream, но я не уверен, как вызвать myMethod с двумя аргументами.




У вас есть цикл, который создает для каждого элемента входного списка список элементов, которые нужно добавить в выходной цикл. В этом случае можно использовать flatMap.
List<String> addList =
myList.stream()
.flatMap(listobj -> myMethod(listobj+"%",listobj).stream())
.collect(Collectors.toList());
Обновлено: я не уверен в типах выходных List и List, возвращаемых mymethod(). Вы смешали List<String> с List<Integer> в своем коде (вы не можете вернуть List<String> из mymethod и назначить его List<Integer>).