ArrayList的数据结构的本质是数组列表,是一段连续的空间(它的扩容机制在此不谈),它支持对元素的快速随机访问(Random Access),即使用了索引遍历,通过ArrayList首位的地址+偏移量(即下标)来查找元素。
LinkedList的数据结构的本质是双向链表,所以它的占用的内存空间是不连续的,可利用零碎的空间,但查找访问元素的话每次都要遍历节点,效率低。总结来说就是按顺序查找的线性结构,内存空间利用率高。
ArrayList的查找效率高,而在ArrayList中间插入或者删除元素需要元素空间的移动(扩容或缩),效率低
LinkedList的插入、删除相对效率较高,因为它只需要在对应对象的引用上进行相应的操作,不用移动元素
原文:https://www.cnblogs.com/Faink/p/13308100.html