清洁初始化arraylist的方法

时间:2013-07-14 23:11:23

标签: java arrays loops

我想要一个Java中的Arraylist,我想填充10

ArrayList<Integer> list = new ArrayList<Integer>(100);
for (int i = 0; i < 100; i++) {
    list.add(10);
}

我将不得不初始化很多Arraylists,所以我想知道在没有for循环的情况下是否有一种干净的方法可以做到这一点?

2 个答案:

答案 0 :(得分:7)

您可以使用Collections.nCopies

ArrayList<Integer> list = new ArrayList<Integer>(Collections.nCopies(100, 10));

这会将list初始化为100 10。

答案 1 :(得分:2)

ArrayList<Integer> list = new ArrayList<Integer>(100);
for (int i = 0; i < list.size(); i++) 
{
    list.add(10);
}

list.size()在这里将为0,因此这就是您的代码不起作用的原因。 size会跟踪列表中当前有多少元素,而不是容量。

如果您想要使用全部10来初始化ArrayList,可以使用:

ArrayList<Integer> list = new ArrayList<Integer>(Collections.nCopies(100, 10));

编辑:
您稍后说过您不想要for循环,但要修复您的代码,只需将list.size()替换为100。