ArrayList与LinkedList

ArrayList与LinkedList都是List接口的实现类

ArrayList是数组队列,相当于动态数组

LinkedList是双向链表结构,也可当作堆栈,队列

当随机访问List时(get和set操作),ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。

从利用效率来看,ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用

面试问题:在删除可插入对象的动作时,为什么ArrayList的效率会比较低呢?

    因为ArrayList是使用数组实现的,若要从数组中删除或插入某一个对象,需要移动后段的数组元素,从而会重新调整索引顺序,所以速度上就会比LinkedList要慢许多.相反,LinkedList是使用链表实现的,若要从链表中删除或插入某一个对象,只需要改变前后对象的引用即可!

猜你喜欢

转载自my.oschina.net/u/3841003/blog/2960611
今日推荐