将前100个整数添加到ArrayList

时间:2015-02-16 21:16:29

标签: java arrays arraylist

我正在编写一个程序来显示前100个整数ArrayList。它符合但没有运行。谁能告诉我哪里出错了。我试图添加前100个整数,然后显示它们,但我再次得到一个空白页面。这就是我所做的。

   ArrayList<Integer> numbers = new ArrayList<Integer>(100);

   for (Integer i : numbers)
     {
       numbers.add(i);
       System.out.println(numbers.get(i));
     }

3 个答案:

答案 0 :(得分:4)

100构造函数中的ArrayList参数指定列表的初始容量。这并不意味着元素的实际数量为100。请参阅ArrayList constructor

的文档
  

构造具有指定初始容量的空列表

由于您的列表为空,因此for (Integer i : numbers)循环将执行零次。您需要循环如下:

ArrayList<Integer> numbers = new ArrayList<Integer>(100);

for (int i = 1; i <= 100; i++)
{
   numbers.add(i);
   System.out.println(numbers.get(i - 1));
}

ArrayList.get(i)获取索引i处的元素。由于索引从零开始,循环体中的最后一个语句应为numbers.get(i - 1)

如果数字应从零开始(099),那么循环将如下:

for (int i = 0; i < 100; i++)
{
   numbers.add(i);
   System.out.println(numbers.get(i));
}

答案 1 :(得分:1)

for (Integer i : numbers)enhanced-for statement。它有效地迭代numbers中包含的每个条目,i为该迭代引用,并允许您执行与i相关的操作。

由于numbers为空,因此循环不会运行。

此外,new ArrayList<>(100)会将数组列表的初始容量设置为100;如果您知道不希望每次达到限制时增加数组列表的成本,这将非常有用。它将任何值填充到数组列表中。

您真正需要做的就是将enhanced-for更改为正常for

for(int i = 0; i < 100; i++) {
    numbers.add(i);
}

答案 2 :(得分:0)

您正在循环一个空列表。您需要更改代码以向此ArrayList添加值,然后将其打印出来:

int initialSize = 100;
ArrayList<Integer> numbers = new ArrayList<Integer>(initialSize);
for (int i = 0; i < initialSize; i++)
 {
   numbers.add(i);
   System.out.println(numbers.get(i));
 }