想要使用 Streams API 并删除以下代码片段中的当前 for 循环:
public List<MyObject> performSomeAction(){
List<String> myList= Arrays.asList("abc","xyz","def");
List<MyObject> resultList=new ArrayList<MyObject>();
int startIndex=0;
int totalNumOfRecords=1000;
for(int i=0;i<totalNumOfRecords;i++){
SomeObject o= xService.doSomething();
String type = o.getType();
int length = o.getLength();
if(myList.contains(type)){
int[] myarray=getMyArray(startIndex+20, startIndex+length);
String id=o.getSomeId();
OtherObject obj= xService.performOperation(myarray,"abcd");
resultList.add(new MyObject(obj,id));
}
startIndex+=length;
}
return resultList;
}
我试过这样的事情:
IntStream.range(0,totalNumOfRecords).forEach(i -> xService.doSomething());
但我被卡住了,不知道如何进一步进行,需要从派生对象 'o' 中获取多个值并使用它在它上面执行过滤器,然后再次进行另一个方法调用获取一些将传递给其他方法的数组返回我需要创建我的 resultList 的其他对象
相关分类