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 有两个参数。
Stream
myMethod
您有一个循环,该循环为输入列表的每个元素生成要添加到输出循环的元素列表。 flatMap 在这种情况下可以使用。
flatMap
List<String> addList = myList.stream() .flatMap(listobj -> myMethod(listobj+"%",listobj).stream()) .collect(Collectors.toList());
编辑:我不确定输出的类型 List 以及 列表 返回人 mymethod() . 你是混血儿 List<String> 具有 List<Integer> 在代码中(不能返回 列表(<);字符串(>); 从…起 mymethod 并将其分配给 列表(<);整数(>); ).
List
列表
mymethod()
List<String>
List<Integer>
列表(<);字符串(>);
mymethod
列表(<);整数(>);