ArrayList与LinkedList区别

两者都是List接口的实现类,都是线性数据结构。

ArrayList底层采用数组实现,访问特别快,它可以根据索引下标快速找到元素。但添加插入删除等写操作效率低,因为涉及到内存数据复制转移,添加时超过默认容量限制,也会扩容转移数据;LinkedList是采用双向链表结构,每个节点都会有前驱指向上一个节点,后驱指向下一个节点,没有前驱动节点的则是第一个元素,没有后驱节点的是末尾元素,它做添加插入删除操作时,效率特别高,只需将节点指向修改就可以,但要读取时效率低,由于没有索引,必须从第一个元素循环读取。

原文地址:https://www.cnblogs.com/huigee/p/9728264.html