如何从 foreach 和 return 中获取与 java 中的数组相同的值?

How to get Values from foreach and return the same as an Array in java?

这是我的 forEach 循环,现在我想获取每一行的输出,并且 return 在数组中获取相同的输出,我们将不胜感激。 到目前为止,我已经尝试过类似的方法,比如假设我期望从响应中得到 2object,但我只收到一个对象,即第二个对象或最后一个对象,

    public Validation save(Multipart file){
       
          ArrayList<Item> dta = new ArrayList<>();
                IntStream.range(0, data.size()).forEach(rowNo-> {
                    try {
                   Item item   saveData(rowNo+2,data.get(rowNo),vlidation);
                 ret.add(item);
            });
            return dta;
        }
    
    }

正如一些评论所建议的那样,您可以使用流来解决这个问题,因为您已经在使用它们了。

简单映射然后调用collect(Collectors.toList())得到列表。

IntStream.range(0, data.size()).map(rowNo-> {
                    try {
                       return saveData(rowNo+2,data.get(rowNo),vlidation);
                    } catch(Exception ex) {
                        ..
                    }
                }).collect(Collectors.toList());

如果您不想使用流,您可以循环并将当前项目添加到列表中:

ArrayList<Item> ret = new ArrayList<>;
IntStream.range(0, data.size()).forEach(rowNo-> {
                   try {
                      Item item =  saveData(rowNo+2,data.get(rowNo),vlidation);
                      ret.add(item);
                   } catch(Exception ex) {
                    ...
                }
            });
// ret is the list that you wanted