mar*_*pes 39 java arrays collections
有没有更好的方法来实现这一目标?
public static List<String> toList(String[] array) {
List<String> list = new ArrayList(array.length);
for(int i=0; i<array.length; i++)
list.add(array[i]);
return list;
}
Run Code Online (Sandbox Code Playgroud)
注意:Arrays.asList(a)返回由指定数组支持的固定大小的列表.(对返回列表的更改"直写"到数组.).我不希望这种行为.我假设上面的MY函数绕过了(或者我错了吗?)
所以,在这里我们有另一种方法:
public static List<String> toList(String[] array) {
List<String> list = new ArrayList(array.length);
list.addAll(Arrays.asList(array));
return list;
}
Run Code Online (Sandbox Code Playgroud)
只是看着它,我不相信它比第一种方法更快.
Ral*_*lph 42
你用更好的方式是什么意思:
更具可读性:
List<String> list = new ArrayList<String>(Arrays.asList(array));
Run Code Online (Sandbox Code Playgroud)
内存消耗更少,也许更快(但绝对不是线程安全):
public static List<String> toList(String[] array) {
if (array==null) {
return new ArrayList(0);
} else {
int size = array.length;
List<String> list = new ArrayList(size);
for(int i = 0; i < size; i++) {
list.add(array[i]);
}
return list;
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:这是你的第一个例子中的一个错误:
array.length如果array为null,则会引发空指针异常,因此if (array!=null)必须先进行检查.
Jig*_*shi 31
Arrays.asList(array);
Run Code Online (Sandbox Code Playgroud)
例:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
Run Code Online (Sandbox Code Playgroud)
请参阅Arrays.asList课程文档.
Boz*_*zho 17
Arrays.asList(array)
Run Code Online (Sandbox Code Playgroud)
Arrays用途new ArrayList(array).但这不是java.util.ArrayList.但它非常相似.请注意,此构造函数接受数组并将其作为列表的后备数组.就是这样O(1).
如果您已经创建了列表Collections.addAll(list, array),但效率较低.
更新:这样你Collections.addAll(list, array)就成了一个不错的选择.它的包装是番石榴Lists.newArrayList(array).
关于什么 :
List myList = new ArrayList();
String[] myStringArray = new String[] {"Java", "is", "Cool"};
Collections.addAll(myList, myStringArray);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98677 次 |
| 最近记录: |