猿问

如何转换循环迭代 n 次以使用具有多个动态变化的 java Streams API 的列表

想要使用 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 的其他对象


青春有我
浏览 121回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答