填充ArrayList

时间:2015-04-01 01:59:34

标签: java arrays arraylist

我正在尝试填充一个数组列表,但是,我的数组列表总是等于0,并且从不初始化,尽管我在main()上声明它。

这是我的代码。

static ArrayList<Integer> array = new ArrayList<Integer>(10); //The parenthesis value changes the size of the array.
static Random randomize = new Random(); //This means do not pass 100 elements.

public static void main (String [] args)
{
    int tally = 0;
    int randInt = 0;

    randInt = randomize.nextInt(100); //Now set the random value.
    System.out.println(randInt); //Made when randomizing number didn't work.
    System.out.println(array.size() + " : Array size");

    for (int i = 0; i < array.size(); i++)
    {
        randInt = randomize.nextInt(100); //Now set the random value.
        array.add(randInt);
        tally = tally + array.get(i); //add element to the total in the array.
    }       
    //System.out.println(tally);
}

有人可以告诉我发生了什么事吗?我觉得很傻,我已经为我的默认阵列做了ArrayLists而且我无法弄明白这一点来拯救我的生命!

1 个答案:

答案 0 :(得分:2)

new ArrayList<Integer>(10)创建一个ArrayList初始容量为10,但由于其中没有元素,因此大小仍为0。

ArrayList由下面的数组支持,因此它在构造对象时会创建给定大小(初始容量)的数组,因此每次插入新条目时都不需要调整它的大小(Java中的数组是动态,因此当您想要插入新记录并且数组已满时,您需要创建一个新项目并移动所有项目,这是一项昂贵的操作)但即使数组提前创建,size()也会返回0,直到您实际add()某些内容为止。

这就是为什么这个循环:

for (int i = 0; i < array.size(); i++) {
 // ...
}

不会执行array.size() 0

将其更改为:

for (int i = 0; i < 10; i++)

它应该有用。