2013-03-05 46 views

回答

68

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

否则,你就必须有某种循环单独地添加值到列表中。

+0

真的,我觉得有一个更好的办法?哦,循环的作品。 Thx – batoutofhell 2013-03-05 01:12:14

+0

是的,除非你想创建一个新的列表,并用你所有的值进行初始化(参见上面的编辑),这些都是你的选择。 – scaevity 2013-03-05 01:21:11

21

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

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

这绝对是最简洁的做法。 – krispy 2014-03-27 19:13:25

-3

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

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

所以用正确初始化的完整的答案是这样的

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

这不会编译,因为int是原始类型,而Arrays.asList()在原始类型的数组上不能正常工作。所选答案使用Integer,这是正确的方法。 – krispy 2014-03-27 19:15:58

2

如果您正在寻找避免多个代码行以节省空间,也许这句法可能是有用的:

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

删除新的生产线,可以显示它压缩为:

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

仍然需要多次调用'add()',即使将它压缩到一行也会增加混乱 – 2017-08-20 14:11:50

+0

我会在String Ej中设置值。 String theValues =“1,20,2,1001”; (手动或从文件加载)。然后将它传递给Array:Integer [] theArray = theValues.split(“,”,-1);一旦你有了这个数组,很容易将它传递给ArrayList:ArrayList numbersList = new ArrayList (java.util.Arrays.asList(theArray)); 。 (未测试) – 2017-08-22 07:34:10