一、相同点
都是线程不安全的集合。
二、不同点
1.底层数据结构:ArrayList使用的是动态数组,LinkedList使用的是双向循环链表。
2.增加和删除元素(add\remove):LinkedList效率更高,时间复杂度O(1),ArrayList效率较低,时间复杂度近似O(N)。原因是从中间增加和删除元素会移动后面的所有元素向前或向后。
3.修改和查找元素(set/get):ArrayList效率更高,根据索引直接找到内存地址可以快速随机访问,LinkedList效率较低,需要从一端根据指针依次往下寻找。
4.额外内存占用:ArrayList数组有空余未使用占用额外内存,LinkedList节点要保存指针占用了额外内存。
版权声明:本文为kzhanshen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。