数据结构
ArrayList底层采用数组实现,是一段连续的存储空间,LinkedList底层采用双链表实现。
占用空间
ArrayList占用空间小于LinkedList,因为LinkedList除了存储需要的数据外还要存储前后两个结点的指针信息。
查询效率
由于ArrayList存储时是一段连续的空间查询效率快,LinkedList是散列空间,需要根据指针信息查找下一个元素位置,效率慢。
增删效率
ArrayList在增删时会牵扯到大量元素的移动效率慢,LinkedList在链表两端的增删效率快,其他位置的增删效率也很慢,因为需要根据指针信息找到下一个元素。
实现接口
ArrayList和linkedList都实现了List接口,除此之外LinkedList还实现了Deque接口,可以当作队列或栈来使用。