嗨,我想知道是否有复制数组列表比下面的一个联机方式:复制数组列表
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)将数组转换为列表并将其作为参数传递给ArrayList重载的构造函数,该构造函数需要一个Collection。
List<String> list = new ArrayList<String>(Arrays.asList(array))
'List
@GiulioPiancastelli oops。排序:) :) – PermGenError 2013-03-07 21:51:54
只有当你想修改列表时,新的才有用,否则Cratylus的答案更好 – Aubin 2013-03-07 21:54:32
如果您需要在列表格式数组,但实际上并不需要在结构修改,你可以做数组:List<String> list = Arrays.asList(array);
。
否则,@ PremGenError的答案是要去的。
+1解释'Arrays.asList()并创建一个新的清单。 – 2013-03-07 21:55:02
最简单的方法是:
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));
请使用通用List的版本。另外,'List'是一个接口,所以它不能实例化:您可以创建一个'ArrayList '或者'LinkedList '。 –
2013-03-07 21:53:35
谢谢,这就是我不得不从头开始,但是我在错误地发布这个问题之前将其更改为列表。 – phcoding 2013-03-07 22:00:08
您仍然需要添加类型参数,例如'列表'。 –
2013-03-07 22:27:42