java - 在迭代中向 ArrayList 添加对象

标签 java collections arraylist

好吧,我不知道为什么,但我想我缺少一些非常基本的东西来解决这个问题。 这是我的问题: 我有一个方法 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.addreqList.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/

相关文章:

java - 将扫描仪类与 GUI 一起使用

c++ - 从自定义集合中读取数据(结构数组)

java - 如何添加数组,我将在其中输入项目并显示数据,而不是静态数组,我希望它是动态的

java - 使用 Java 将 HTML 转换为 Markdown

java - 数组-数组按值索引

java - 使用 ArrayList 更新一对中的一个字段

java - 根据 HashMap 中 ArrayList<String> 的大小进行排序

java - (数组)列表在 Java 中的实现

c# - 如何使用 Entity Framework 将实体加载到私有(private)集合中

java - 将方法中创建的 ArrayList 添加到 JCombobox