Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中向已初始化的arraylist添加多个项_Java_Arraylist_Collections - Fatal编程技术网

在java中向已初始化的arraylist添加多个项

在java中向已初始化的arraylist添加多个项,java,arraylist,collections,Java,Arraylist,Collections,我在谷歌上搜索,似乎找不到语法。我的arraylist可能会根据用户设置以不同方式填充,因此我已对其进行了初始化 ArrayList<Integer> arList = new ArrayList<Integer>(); ArrayList arList=new ArrayList(); 现在我想用arList.add(55)一个接一个地添加上百个整数如果您有另一个列表,其中包含要添加的所有项目,则可以执行arList.addAll(otherList)。或者,如果总

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

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

现在我想用
arList.add(55)一个接一个地添加上百个整数

如果您有另一个列表,其中包含要添加的所有项目,则可以执行
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));
否则,您将不得不使用某种循环将值单独添加到列表中。

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

arList.addAll(Arrays.asList(1,1,2,3,5,8,13,21));

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

int[] otherList ={1,2,3,4,5};
因此,正确初始化的完整答案如下所示

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

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

        java.util.ArrayList lisFieldNames = new ArrayList() {
            {
                add("value1"); 
                add("value2");
            }
        };
删除新行时,可以将其显示为:

        java.util.ArrayList lisFieldNames = new ArrayList() {
            {
                add("value1"); add("value2"); (...);
            }
        };
是一个varargs方法,允许我们在一条语句中向集合添加任意数量的项:

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

如果您需要添加大量整数,那么使用for循环可能是最简单的。例如,将28天添加到DaysIn二月数组

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

for(int i = 1; i <= 28; i++) {
    daysInFebruary.add(i);
}
ArrayList daysinjury=new ArrayList();
对于(int i=1;i+现在允许:

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

但是列表将是这样。

真的,我认为有更好的方法吗?哦,好吧,循环是有效的。ThxYeah,除非您想创建一个用所有值初始化的新列表(请参阅上面的编辑),这些是您的选项。第二种方法绝对是最简洁的方法。正如我所寻找的,这绝对是最简洁的方法。这不会编译,因为int是一种基本类型和数组。asList()无法在基元类型数组上正常工作。选择的答案使用整数,这是正确的方法。仍然需要多次调用
add()
,即使压缩到一行,也会增加混乱。我会将值放在字符串Ej中。String theValues=“1,20,21001”;(手动或从文件加载)。然后将其传递给Array:Integer[]theArray=theValues.split(“,”,-1);一旦获得了数组,就可以很容易地将其传递给ArrayList:ArrayList numbersList=new ArrayList(java.util.Arrays.asList(theArray));(未经测试)以下是关于为什么这样做的更多信息。我已经在上回答了这个问题
List<Integer> arList = List.of(1,2,3,4,5);