线程安全
ArrayList和linkedList都不是线程安全的数组,因为都不同步。
底层数据结构
ArrayList底层使用的是object数组,linkedList底层使用的是双向链表。
插入和删除操作
ArrayList使用数组存储,所以插入和删除操作会受到元素位置的影响,时间复杂度为0(N-1)。
LinkedList使用链表存储,所以插入和删除操作都很方便,时间复杂度基本为0(1)。
是否可以随机访问
ArrayList支持随机访问,类似get( int index ).
LinkedList不支持随机访问。
内存空间
ArrayList浪费的内存空间在于list末尾会空出一截没用的空间,LinkedList浪费内存空间主要体现于每次存储都要更消耗内存(前驱、后继、数据)。