3

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

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

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

4

2 回答 2

8

您可以使用Collections.nCopies

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

list这将使用 100 个 10进行初始化。

于 2013-07-14T23:12:05.033 回答
2
ArrayList<Integer> list = new ArrayList<Integer>(100);
for (int i = 0; i < list.size(); i++) 
{
    list.add(10);
}

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

如果您希望ArrayList使用全部 10 进行初始化,您可以使用:

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

编辑:
你后来说你不想要一个for循环,但要修复你的代码,只需list.size()用 100 替换。

于 2013-07-14T23:13:24.340 回答