在面试过程中有很多会问到ArrayList和LinkedList的区别,故特地下来研究了一番。
1.ArrayList的底层是基于动态数据实现,而LinkedList是属于基于链表的结构
2.ArrayList在获取数据是优于LinkedList,LinkedList是相当的迟缓,原因有以下:
ArrayList是根据下标直接取值,而LinkedList要移动指针查找。
3.至于集合中的add和remove,在ArrayList和LinkedList要看数据量,若是数据量不大,他两性能差不多,如果数据超大,那么ArrayList优于LinkedList
以下为测试代码:
public class demo {
public static final int n=20000;
public static void main(String arg[]){
List list=new ArrayList();
List list1=new LinkedList();
System.out.println("array"+demo.adddemo(list));
System.out.println("linkList"+demo.adddemo(list1));
System.out.println("arrayget"+demo.getList(list));
System.out.println("linkListget"+demo.getList(list1));
}
public static long getList(List list){
long statime=System.currentTimeMillis();
for(int i=0;i<list.size();i++){
int j= Collections.binarySearch(list,i);
}
return System.currentTimeMillis()-statime;
}
public static long adddemo(List list){
long starttime=System.currentTimeMillis();
for(int i=0;i<n;i++){
list.add(i);
}
return System.currentTimeMillis()-starttime;
}
}
Java中ArrayList和LinkedList区别
猜你喜欢
转载自yu120396854.iteye.com/blog/2360554
今日推荐
周排行