好吧,我不知道为什么,但我想我缺少一些非常基本的东西来解决这个问题。 这是我的问题: 我有一个方法 createPublisherRequestObject(String str) ,它接受字符串参数并返回 ReportRequest 对象列表。通常对于给定的 String 65 对象将被创建。我有另一个方法 getTimeFrameValues() 它返回字符串的数组列表。通常此方法会返回 arraylist 中大约 15 个字符串。 所以基本上我会在循环中迭代 15 次(字符串数量),然后对于每次迭代,我将调用方法 createPublisherRequestObject 来创建 65 个对象。 最后我想要一个 65*15 对象的列表。这是我的代码 -
ArrayList<String> timeList = er.getTimeFrameValues();
List<ReportRequest> reqList = new ArrayList<>();
for (Iterator iterator = timeList.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
reqList = rj.createPublisherRequestObject(string);
}
log.info("Final List Size "+reqList.size());
但是这会返回 65
请帮忙!!!
谢谢, 普拉蒂克
最佳答案
每次浏览列表时,您都会替换 reqList
。看来您想要做的是 reqList.add
或 reqList.addAll
。
此外,如果您已经知道每个字符串要创建多少个对象,则通过创建适当大小的 ArrayList
可以获得更好的性能:
new ArrayList<>(65 * timeList.size())
最后,由于您使用的是 Java 7,因此请继续使用增强的 for
循环;它更具可读性:
for(String string: timeList)
reqList.addAll(rj.createPublisherRequestObject(string));
关于java - 在迭代中向 ArrayList 添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618275/