3

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

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

List list = new ArrayList();

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

编辑:感谢两个信息丰富的答案,非常有帮助:)

4

3 回答 3

9

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

List<String> list = new ArrayList<String>(Arrays.asList(array))
于 2013-03-07T21:49:19.710 回答
6

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

于 2013-03-07T21:51:13.327 回答
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));
于 2013-03-07T22:21:36.077 回答