81

我正在谷歌搜索,似乎找不到语法。arraylist根据用户设置,我的填充可能会有所不同,因此我已对其进行了初始化

ArrayList<Integer> arList = new ArrayList<Integer>();

现在我想添加数百个整数而不用一一做arList.add(55);

4

8 回答 8

114

如果您有另一个列表,其中包含您想要添加的所有项目,您可以这样做arList.addAll(otherList)。或者,如果您总是将相同的元素添加到列表中,则可以创建一个新列表,该列表已初始化为包含所有值并使用该addAll()方法,例如

Integer[] otherList = new Integer[] {1, 2, 3, 4, 5};
arList.addAll(Arrays.asList(otherList));

或者,如果您不想创建那个不必要的数组:

arList.addAll(Arrays.asList(1, 2, 3, 4, 5));

否则,您将不得不有某种循环将值单独添加到列表中。

于 2013-03-05T01:00:35.850 回答
31

这些整数的“来源”是什么?如果您需要在源代码中硬编码,您可以这样做

arList.addAll(Arrays.asList(1,1,2,3,5,8,13,21));
于 2013-03-05T01:10:13.360 回答
13

Collections.addAll是一个可变参数方法,它允许我们在单个语句中将任意数量的项目添加到集合中:

List<Integer> list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);

它还可以用于将数组元素添加到集合中:

Integer[] arr = ...;
Collections.addAll(list, arr);
于 2018-06-10T20:06:32.667 回答
3

如果您希望避免使用多行代码以节省空间,那么这种语法可能会很有用:

        java.util.ArrayList lisFieldNames = new ArrayList() {
            {
                add("value1"); 
                add("value2");
            }
        };

删除新行,您可以将其压缩为:

        java.util.ArrayList lisFieldNames = new ArrayList() {
            {
                add("value1"); add("value2"); (...);
            }
        };
于 2016-02-29T14:30:16.470 回答
1

Java 9 + 现在允许这样做:

List<Integer> arList = List.of(1,2,3,4,5);

该列表将是不可变的。

于 2021-06-15T00:58:27.847 回答
0

以科特林方式;

val arList = ArrayList<String>()
arList.addAll(listOf(1,2,3,4,5))
于 2021-10-21T07:04:38.193 回答
0

如果您需要添加很多整数,那么使用 for 循环可能是最简单的。例如,将 28 天添加到 daysInFebruary 数组。

ArrayList<Integer> daysInFebruary = new ArrayList<>();

for(int i = 1; i <= 28; i++) {
    daysInFebruary.add(i);
}
于 2018-10-15T06:56:39.893 回答
-5

我相信上面的答案是不正确的,用多个值初始化的正确方法是......

int[] otherList ={1,2,3,4,5};

所以正确初始化的完整答案看起来像这样

int[] otherList ={1,2,3,4,5};
arList.addAll(Arrays.asList(otherList));
于 2013-09-27T00:47:35.607 回答