ArrayList, ArrayDeque, LinkedList区别

ArrayList 基于动态数组存储元素,实现了List 接口

1)支持随机访问元素,不需要遍历,通过下标索引直接访问,时间复杂度为O(1);
2)在不需要扩容的前提下, 尾插的时间复杂度为o(1),;
3)数组的内存空间时连续的,所以头插、中间插入、删除的时候需要移动数组元素,时间复杂度时O(n)。
4)ArrayList 支持拷贝,可实现动态扩容,将数组复制到更大的内存空间。
5)实现了Serializable接口,序列化后的对象可以用于网络传输,写入数据库,写到文件。transient关键字修饰的的字段不能被序列化。ArrayList提供了writeObject和readObject完成序列化和反序列化,不会序列化扩容导致的空闲空间。

ArrayDeque 基于环形数组实现双端队列,实现Deque接口
1)支持随机访问元素
2)可在头部和尾部插入、删除、添加元素,添加元素时如果head==tail,则进行扩容
有关ArrayDeque的具体内容可以看这个

来自https://www.bbsmax.com/A/lk5a4kn0J1/

方法 解释说明
addLast,addFirst 插入成功没有返回值,插入失败抛异常,添加元素不能为空null
offerLast , offerFirst 插入成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值