我想知道是否有一种将数组复制到列表的单行方式,而不是以下方式:
String array[] = new String[]{"1", "2", "3", "4" } ;
List list = new ArrayList();
for (int i=0; i< array.length; i++){
list.add(array[i] );
}
编辑:感谢两个信息丰富的答案,非常有帮助:)
我想知道是否有一种将数组复制到列表的单行方式,而不是以下方式:
String array[] = new String[]{"1", "2", "3", "4" } ;
List list = new ArrayList();
for (int i=0; i< array.length; i++){
list.add(array[i] );
}
编辑:感谢两个信息丰富的答案,非常有帮助:)
是的,有一个衬里,使用Arrays.asList(T...a)将数组转换为列表,并将其作为参数传递给采用 Collection 的 ArrayList 重载构造函数。
List<String> list = new ArrayList<String>(Arrays.asList(array))
如果您需要列表格式的数组,但实际上不需要在结构上修改数组,您可以这样做List<String> list = Arrays.asList(array);
:
否则,@PremGenError 的答案就是答案。
最简单的方法是:
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));