Java框架集合

本文深入解析Java中ArrayList和LinkedList两种List实现的特点与差异。对比了它们在存储方式、访问速度、增删操作效率及内存占用上的表现,帮助开发者理解何时选择哪种List类型更为合适。
摘要由CSDN通过智能技术生成

Java框架集合

参考

Java集合脑图
在这里插入图片描述
Java集合类图
在这里插入图片描述
Java集合框架图
在这里插入图片描述
Java集合框架简化图
在这里插入图片描述
Java框架集合细节图
在这里插入图片描述

List

在这里插入图片描述

1.ArrayList

参考
在这里插入图片描述
总结:
(1)ArrayList内部使用数组存储元素,当数组长度不够时进行扩容,每次加一半的空间,ArrayList不会进行缩容;

(2)ArrayList支持随机访问,通过索引访问元素极快,时间复杂度为O(1);

(3)ArrayList添加元素到尾部极快,平均时间复杂度为O(1);

(4)ArrayList添加元素到中间比较慢,因为要搬移元素,平均时间复杂度为O(n);

(5)ArrayList从尾部删除元素极快,时间复杂度为O(1);

(6)ArrayList从中间删除元素比较慢,因为要搬移元素,平均时间复杂度为O(n);

(7)ArrayList支持求并集,调用addAll(Collection<? extends E> c)方法即可;

(8)ArrayList支持求交集,调用retainAll(Collection<? extends E> c)方法即可;

(7)ArrayList支持求单向差集,调用removeAll(Collection<? extends E> c)方法即可;

2.LinkedList

参考
在这里插入图片描述
总结:
(1)LinkedList是一个以双链表实现的List;

(2)LinkedList还是一个双端队列,具有队列、双端队列、栈的特性;

(3)LinkedList在队列首尾添加、删除元素非常高效,时间复杂度为O(1);

(4)LinkedList在中间添加、删除元素比较低效,时间复杂度为O(n);

(5)LinkedList不支持随机访问,所以访问非队列首尾的元素比较低效;

(6)LinkedList在功能上等于ArrayList + ArrayDeque;

彩蛋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值