这两个在平时的工作中都时常用到,偶然间发现面试还问这个,特地整理一下
简单来说,ArrayList是一个长度可以自动增长的Array
其实上面一句话就道尽了两者最核心的区别
(1)长度:Array长度固定,ArrayList可以动态扩容
(2)效率:效率上Array>ArrayList,原因自然在于ArrayList动态扩容造成了效率损耗
两者之间的转换也非常简单:
(1)Array转ArrayList
String[] a = {"a","b","c"};
List alist = Arrays.asList(a);
(2)ArrayList转Array
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
int len=list.size();
String[] array = (String[])list.toArray(new String[len]);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}