苏州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性能明显好于ArrayList

3. 当在 i 位置插入元素,ArrayList性能明显高于LinkedList,同时反证了两者在查询效率上ArrayList的优势

上一篇:苏州java培训教学Set、List、Map的区别
下一篇:苏州java培训教学DateUtil工具类

苏州达内java培训怎么样?达内java培训有什么优势?

苏州java培训哪家好 全方位对比java培训机构

达内与山东六所高校实行专业共建,开辟校企合作新纪元

达内Java高级实战课程重磅来袭,建立云移时代Java培训新标准

选择城市和中心
贵州省

广西省

海南省