Java进阶:【集合】1.8 jdk Arraylist和Vector集合源码分析
2023-03-20 14:53:36 时间
1.8 jdk Arraylist集合源码分析
- 底层数组,size是有效数据的长度,
- 在1.8中调用无参数构造器时底层的elementdata数组初始化为{ }
- add方法
在调用add方法后底层数组才重新赋值,为新的数组,长度为10,节省了内存,只有在需要添加的时候我们才要创建数组
Vector接口
- 底层是Object数组,int类型属性表示数组中的有效数据
- Vector vr = new Vector();调用构造器的时候
- add
list和Vector的区别
底层都是数组的扩容
区别:
ArrayList:
- ArrayList底层扩容长度为缘数组的1.5倍,线程不安全,效率高
Vector:
- 底层扩容长度为原数组的两倍,线程安全,效率地,已经淘汰
底层都为数组:
- 优点:查询效率高
- 缺点:删除元素效率低,
- 特点:可重复
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制