当前位置: 首页 > 知识库问答 >
问题:

使用循环将元素添加到ArrayList并将其输出到控制台

郤玉书
2023-03-14

我知道这是一个基本问题,但我已经挣扎了很多天,找不到解决办法。请,任何建议将非常真诚地感谢。

我只是尝试将现有ArrayList中包含的元素(节点对象)添加到新的空ArrayList中。其思想是,如果我可以一次添加一个元素,那么我可以对1个元素的列表、2个元素的列表、3个元素的列表运行堆排序方法,以此类推。

但是,当使用for循环、while循环或甚至是增强的for循环时,我无法成功地添加元素并输出其结果值或顺序。当我按如下方式手动添加它们时,它似乎起作用:

 ArrayList<Integer> test_list = new ArrayList<Integer>();

test_list.add(0, 5);
test_list.add(1,10);
test_list.add(2, 15);
test_list.add(3, 20);
test_list.add(4, 25);

for (Integer num : test_list){      
System.out.println("output testing output testing" + num);
}

但是,当我尝试使用循环添加它们时,如下所示:

for (int i = 0; i<test_list.size()-1; i++)
{
    test_list.add(i, i*5);
    System.out.println(test_list.get(i));
}

这行不通!我查看了ArrayList的API和stackoverflow问题,从我收集的信息来看,'.set(index,element)'方法在空列表上不起作用,但是'.add(index,element)'应该起作用,我不明白为什么不起作用。

共有3个答案

景嘉实
2023-03-14

ArrayList.set(索引、数据)

用于在指定索引处设置项。但是,如果列表大小小于您试图访问的索引,它将抛出异常,这也是有意义的。Set方法只能用于替换项,不能用于添加项

ArrayList.add(索引,数据)

此方法用于在列表中插入一些数据。如果您正在尝试插入列表中间的内容,则数据将被调整为新索引腾出空间。如果你想在列表的末尾添加一些东西,那也可以。但是,如果您试图添加项的索引大于arrayList的大小,则此方法也将出现IOB异常。

魏书
2023-03-14

test_list.size()在循环中为零。您需要指定循环的步数

薛坚
2023-03-14

问题是在您开始添加数组列表之前,数组列表是空的(size=0);因此,您的循环在空状态下运行。

增强的for循环也将不起作用,因为列表首先没有项。

手动添加项目时,您可以成功地将项目添加到列表中,因为您不依赖于列表的大小。

使用Mert Ozdal的答案中的替代实现

 类似资料:
  • 我发现这个问题很有帮助,但是我仍然很难让我的循环正确工作。 期望: 我正在构建一个简单的JavaFX应用程序,它的用户界面通过几个文本字段和几个按钮进行输入。我已经建立了一个“重置”按钮,应该清除所有文本字段中的文本,但是我不能让它工作。 按钮的方法循环遍历FXML元素,我希望它能识别TextFields并将它们添加到列表中: 然后,文本字段列表返回到此方法,其中文本字段被循环并清除: 现实: 在

  • 问题内容: 我有一个要通过for循环添加元素的arraylist。 编辑:如果我有50个Answer元素,该怎么办? 问题答案: 您无法以尝试的方式进行操作……您可能可以执行以下操作:

  • 问题内容: 我正在遍历,并尝试将其值复制到中。问题在于它只能遍历一次。但是使用to 显示所有列的所有条目。以下是代码段- 复制到的唯一值是第1列。然后退出。但是我可以看到所有列的值。为什么? 问题答案: 如果我正确理解了您的问题,那么这里可能有两个问题: 是-我假设情况并非如此,就好像您在while循环中遇到异常并且什么也不会输出。 第二个问题是将从 随后的每一行中 获取1,2,3列,依此类推。

  • 我有一个JPanel、窗口和一组JPanel和JLabel。我想在JFrame中添加5个JPanel,在每个JPanel中添加一个JLabel。每个JPanel将用于表示有关骰子的数据。 但是,当我运行代码时,只有最后一个JPanel出现在JFrame上,并带有文本“Dice 4”。我不明白为什么。 守则:

  • 问题内容: 是否可以将值添加到ArrayList而不是使用HashMap 就像是: 现在收到错误: 谢谢 问题答案: JSTL并非旨在执行此类操作。这确实属于业务逻辑,该业务逻辑将(间接)由Servlet类控制。 创建一个如下的servlet: 这个地图上的。 现在,在其中创建一个JSP文件(将其放置以防止直接访问): 不需要,因为servlet已经设置了它。 现在通过调用servlet + JS

  • 我读过许多关于动态添加字段集的博客和帖子,但它们都给出了非常复杂的答案。我要求的不是那么复杂。 我的HTML代码: 因此,用户将在字段中输入一个整数值(我正在使用javascript检查验证)。点击链接,会出现相应数量的输入字段供他输入。我想用javascript实现这一点。 我不是javascript方面的专家。我在想如何通过链接检索用户在字段中填写的整数,并显示相应数量的输入字段。