ArrayList和LinkedList的区别?

1.线程安全:ArrayList和LinkedList都是不同步的,所以都是线程不安全的。

2.底层数据结构:ArrayList底层采用的是object数据,而LinkedList底层采用的是双向链表。(JDK1.6之前采用的是双向循环链表,JDK1.7取消了循环。)

3.插入删除是否受元素位置的影响:ArrayList采用的是数组,所以它在插入或者删除元素的时候,要移动元素,受元素位置的影响,时间复杂度是O(n)。LinkedList在插入或者删除的时候不需要移动大量元素,所以不受元素位置的影响,时间复杂度是O(1)。

4.是否支持快速访问:ArrayList可以根据数组下标进行快速随机访问,而LinkedList是不支持快速随机访问。

!!!!!5.内存空间占用:ArrayList他的内存空间浪费主要体现在list列表结尾会留出一定的空间,而LinedList空间浪费主要体现在前驱指针和后继指针。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容