ArrayList、LinkList区别

ArrayList和LinkList对比

ArrayList LinkList
数据结构 可变数组 双向链表
线程安全 不安全 不安全
查询效率
删除添加元素效率
内存利用

存储结构

ArrayList采用可变数组的数据结构,每次元素操作之前就会检测数组容量是否足够,不够就进行扩容(扩容大小是之前的1.5倍)然后将之前数组赋值到新的数组当中去,释放之前数组内存。

LinkList 采用双向链表数据结构

查询效率

ArrayList 基于数组的数据结构,在内存中使用连续的内存地址,通过索引查询效率更高

LinkList 采用双向链表数据结构 ,在内存中是不相邻的内存地址,查询的从链表指定位置开始一个一个查询,所以相对效率低一些

删除添加元素效率

ArrayList 基于数组的数据结构,删除和添加,都需要移动其他元素的位置,所以效率低,
LinkList 基于双向链表的数据结构,添加和删除只需要根据节点头节点和尾节点,修改相邻两个节点数据即可,所以效率相对高一些

内存利用

ArrayList 需要连续的内存地址,LinkList不需要连续的内内存地址更加节省内存空间

发布了100 篇原创文章 · 获赞 75 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/baidu_31956557/article/details/100666493