将数组复制到列表

时间:2013-03-07 21:48:27

标签: java

嘿伙计们,我想知道是否有一种将数组复制到列表的单行方式,而不是以下方法:

String array[] = new String[]{"1", "2", "3", "4" } ;

List list = new ArrayList();

for (int i=0; i< array.length; i++){
    list.add(array[i] );
}

编辑:感谢您提供丰富的答案,非常有帮助:)

3 个答案:

答案 0 :(得分:9)

是的,有一个单行,使用Arrays.asList(T...a)将数组转换为列表并将其作为参数传递给ArrayList重载构造函数,该构造函数接收Collection。

List<String> list = new ArrayList<String>(Arrays.asList(array))

答案 1 :(得分:6)

如果您需要列表格式的数组,但实际上不需要在结构上修改您可以执行的数组:List<String> list = Arrays.asList(array);
否则,@ PremGenError的答案就是那个。

答案 2 :(得分:2)

最简单的方法是:

List<String> fixedList = Arrays.asList(array);

但是,这将返回由指定数组支持的固定大小的列表。 这意味着尝试修改列表(例如list.add("10")) 将在运行时生成java.lang.UnsupportedOperationException - 所以要小心。

可以根据固定大小的列表构建可修改的列表:

List<String> modifiableList = new ArrayList<String>(fixedList);

这两个步骤可以合并为一行代码,如下所示:

List<String> list = new ArrayList<String>(Arrays.asList(array));