嘿伙计们,我想知道是否有一种将数组复制到列表的单行方式,而不是以下方法:
String array[] = new String[]{"1", "2", "3", "4" } ;
List list = new ArrayList();
for (int i=0; i< array.length; i++){
list.add(array[i] );
}
编辑:感谢您提供丰富的答案,非常有帮助:)
答案 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));