ArrayList和LinkedList,用哪个?不再纠结了

2020-12-04  本文已影响0人  你的益达233

一、共同点

它们都是List实现了的子类

二、区别

  1. ArrayList是动态数组结构,LinkedList是链表结构
  2. ArrayList有个明显的缺点,就是当容量接近满值的时候,会进行扩容,JDK默认扩容为1.5,那么数据量极大时,就会造成内存空间的大量浪费。 而LinkedList用到多少就申请多少内存
  3. ArrayList的随机访问速度非常快,但是指定位置添加、删除操作时需要将后续元素全部顺移。而LinkedList则恰恰相反
  4. 链表无容量限制,但双向链表本身使用了更多空间,也需要额外的链表指针操作

三、如何选择

  1. 如果频繁在尾部操作,ArrayList和LinkedList都可以
  2. 如果频繁在任意位置添加、删除操作,选LinkedList
  3. 如果频繁随机查询操作,选ArrayList
上一篇下一篇

猜你喜欢

热点阅读