有更好的方法来实现这一目标吗?
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;
}
NOTE: Arrays.asList(a) 返回由指定数组支持的固定大小列表。 (对返回列表的更改“直写”到数组。)。我不想要那种行为。我认为我上面的函数绕过了这个(或者我错了?)
所以,这里我们有替代方法:
public static List<String> toList(String[] array) {
List<String> list = new ArrayList(array.length);
list.addAll(Arrays.asList(array));
return list;
}
光是看着它,我不相信它比第一种方法更快.
更好的方法是什么意思:
更具可读性:
List<String> list = new ArrayList<String>(Arrays.asList(array));
内存消耗更少,也许更快(但绝对不是线程安全的):
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;
}
}
顺便说一句:这是第一个示例中的一个错误:
array.length
如果数组为空,将引发空指针异常,因此检查if (array!=null)
必须首先完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)