时间:2021-05-19
ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要。
实现方式
ArrayList的内部采用集合的方式存储数据
唯一需要注意的是对于容量超过阈值的处理逻辑,数组的默认容量大小是10,最大容量是Integer.Max_Value,超过最大容量会抛内存溢出异常,
扩容机制看下面
扩容后的容量是原有容量的1.5倍
LinkedList的实现方式
内部采用双向链表Node内部类来存储数据,由于采用了双向链表,LinkedList也可以当做栈和队列来使用,但是效率比较低,Java提供了ArrayDeqeue的高效率实现。
性能比较
在尾部插入效率上面,两者相差不会太大,但是LinkedList需要维护双向链表的关系,所有存储效率上面会略逊于ArrayList
ArrayList的时间主要耗时在容量扩容,数据迁移上面,如果我们一次性初始化容量,应该还可以有提升的空间,再来对比看看,有恐怖的50%的提升空间
Linked的优势在于头部插入的效率,只需要修改头部元素的指针就可以做到,而数组还需要移动后续的数据,所有效率远远低于LinkedList
对于get,set的操作,链表内部通过二分查找,数组可以通过下标直接访问元素,所以效率高于LinkedList
基于以上比较,我们基本上可以确定
如果只是存放数据,并进行j简单的迭代情况下,我们一般采用集合的效率最高,
如果涉及到频繁的修改元素,就应该采用LinkedList
希望本篇文章对您有所帮助
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java开发过程中,用到的最多的List集合就属ArrayList与LinkedList。对于ArrayList的遍历,通常是下面的方法:publicstati
本文基于jdk1.8进行分析。LinkedList和ArrayList都是常用的java集合。ArrayList是数组,Linkedlist是链表,是双向链表。
LinkedList与ArrayList都是List接口的具体实现类。LinkedList与ArrayList在功能上也是大体一致,但是因为两者具体的实现方式不
本文研究的主要是Java编程中ArrayList和LinkedList区别及使用场景的相关内容,具体介绍如下。1、ArrayList是基于数组实现的,其构造函数
一、LinkedList概述:LinkedList与ArrayList一样,是实现了List接口。由于LinkedList是基于链表实现的,所以它执行插入和删除