如何从 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
这是我的 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