java中ArrayList 和LinkList区别

1.ArrayList

ArrayList是数组结构。默认大小10,容量不足时需动态扩容为原来的1.5倍

它的特别是查询快,增删慢。

物理上连续,空间上不连续

为什么会增删慢呢?

当add()的时候,ArrayList需要找到在数组中的index,插入进去。然后这个位置及之后的所有index都会整体往后移一位。

当remove()的时候,需要找到index,删除掉。然后这个位置之后所有的index整体往前移动一位。

所以速度相对来说比较慢。

当ArrayList数据全部删除的时候,是从最后一个元素开始向前删除 的。

2.LinkList

LinkList是双向链表结构。

它的特点是查询慢,增删快。

物理上不连续,空间上连续。

就像锁链一样。每个元素之间循环双向链表,互相指向。

需要从头遍历从而找到对应的数据,这样的结果就是查询起来速度较慢。

当增加或者删除的时候,只需要改变一下索引位置的元素的指针指向就可以。所以速度比较着ArrayList()就会快点。


  故对于顺序读写多的场景使用ArrayList

  对于中间增删多的场景使用LinkedList

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容