【发布时间】:2018-09-25 20:32:47
【问题描述】:
我知道这是一个基本问题,但我一直在努力解决很多天,但找不到解决方案。拜托,任何建议将不胜感激。
我只是想将现有 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)' 应该可以工作,但我不知道为什么它不工作。
【问题讨论】: