苏州Java培训
达内苏州java培训中心

0512-67873100

热门课程

苏州java培训教学ArrayList与LinkedList的区别

  • 时间:2016-06-14
  • 发布:苏州java培训
  • 来源:Java教程

苏州java培训教学ArrayList与LinkedList的区别

1.ArrayList是实现了基于动态数组的数据结构。

2.LinkedList基于链表的数据结构。

3.对于随机访问get和set,ArrayList优,因为LinkedList要移动指针。

4.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

private static void modifyArrayListPerformance(){

ArrayList<String> strList = new ArrayList<>();

long t1 = System.currentTimeMillis();

for (int i = 0; i < 100000; i++) {

strList.add(0,"test");

}

long t2 = System.currentTimeMillis();

System.out.println("ArrayList花费:"+(t2-t1));

}

private static void modifyLinkedListPerformance(){

LinkedList<String> strList = new LinkedList<>();

long t1 = System.currentTimeMillis();

for (int i = 0; i < 100000; i++) {

strList.add(0,"test");

}

long t2 = System.currentTimeMillis();

System.out.println("LinkedList花费:"+(t2-t1));

}

通过三次时间对比,分别为:

i  位置, 0  位置,末尾位置

=========================================================================================

总结:通过实践发现,网上面试答案太过含糊(大致意思为:ArrayList 适用于查询  LinkedList适用于修改)

1. 当在末尾插入元素,两者性能差距不大,ArrayList略好

2. 当在固定位置(本文为 0 位置)插入元素,LinkedList