在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: ArrayListJava 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的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android Java 中将 1000 多个项目列表从一个 Activity 发送到另一个?