在java中将多个项目添加到已经初始化的arraylist

Posted

技术标签:

【中文标题】在java中将多个项目添加到已经初始化的arraylist【英文标题】:Add multiple items to already initialized arraylist in java 【发布时间】:2013-02-19 06:34:35 【问题描述】:

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

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

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

【问题讨论】:

我已经在***.com/a/65368082/10304471回答了这个问题 【参考方案1】:

如果您有另一个列表,其中包含您想要添加的所有项目,您可以使用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));

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

【讨论】:

真的,我认为有更好的方法吗?哦,好吧,循环工作。谢谢 是的,除非你想创建一个用你所有的值初始化的新列表(见我上面的编辑),这些都是你的选择。 第二种绝对是最简洁的做法 正是我想要的【参考方案2】:

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

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

【讨论】:

这绝对是最简洁的做法。【参考方案3】:

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

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

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

Integer[] arr = ...;
Collections.addAll(list, arr);

【讨论】:

【参考方案4】:

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

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

去掉新行,可以压缩显示为:

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

【讨论】:

仍然需要多次调用add(),即使压缩为一行也会增加混乱 我会在字符串 Ej 中有值。字符串 theValues="1,20,2,1001"; (手动或从文件加载)。然后将其传递给数组: Integer[] theArray = theValues.split(",", -1);获得数组后,很容易将其传递给 ArrayList: ArrayList numbersList = new ArrayList(java.util.Arrays.asList(theArray)); . (未测试) 这里有更多 detailed answer 说明为什么会这样。【参考方案5】:

Java 9+ 现在允许这样做:

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

该列表将是 immutable。

【讨论】:

最后,这是将多个元素添加到一个列表的单行方法。没有循环,没有额外的列表,只有一行简单的代码。谢谢。【参考方案6】:

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

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

for(int i = 1; i <= 28; i++) 
    daysInFebruary.add(i);

【讨论】:

【参考方案7】:

以科特林方式;

val arList = ArrayList<String>()
arList.addAll(listOf(1,2,3,4,5))

【讨论】:

【参考方案8】:

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

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

所以正确初始化的完整答案如下所示

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

【讨论】:

这无法编译,因为 int 是原始类型,而 Arrays.asList() 无法在原始类型数组上正常工作。选择的答案使用整数,这是正确的方法。

以上是关于在java中将多个项目添加到已经初始化的arraylist的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中将多个可拖动图像添加到 JFrame?

如何在 Android Java 中将 1000 多个项目列表从一个 Activity 发送到另一个?

如何在 iOS 10 应用程序中将媒体附件添加到我的推送通知?

无法在 Eclipse 中将包添加到 src

在 Perl6 中将多个值附加到数组

在Java中将多个变量初始化为相同的值