当前位置: 首页 > news >正文

ArrayList底层实现及源码分析

1. ArrayList 底层是通过动态数组实现的。

2. ArrayList使用无参构造时,初始容量为0,当第一次添加数据时会初始化容量为10

3. ArrayList在进行扩容时按照每次1.5倍的增速增大容量,每次扩容都需要数据的copy

4. ArrayList添加数据的过程如下:

4.1 确保数组已使用长度 size + 1后足够存下下一个数据;

4.2 计算数组的容量,如果当前数组已使用长度 size + 1 后大于当前数组长度,则需要调用grow方法进行容量的1.5倍扩容。

4.3 确保新增的数据有空间进行存放之后,则正常在数组末尾添加数据。

4.4 添加成功返回 true

5. ArrayList源码分析

6. 数组与List的互转

6.1 数组转list   Arrays.asList()方法。使用该方法后,修改原始数组,新的数组也会变化。

Arrays.asList底层使用了Arrays中的内部类ArrayList来构造集合,在这个集合的构造函数中,直接将参数中的数组赋值给了新的数组,在内存中都是指向同一个地址。

6.2 list转数组 List的toArray()方法,使用该方法后,修改原始数组,新的数组不会变化。

该方法的底层时System.arraycopy方法,进行了数组的copy,与原始数组无关。

http://www.dtcms.com/a/590354.html

相关文章:

  • 河北建设集团有限公司网站企业公司有哪些
  • HarmonyOS黑马云音乐项目:全场景在线音乐播放的实现与优化
  • 804.唯一的摩尔斯密码词(uthash)
  • 公司做网站域名归谁大学生做兼职上什么网站好
  • 网站分类代码网站建设经营服务合同范本
  • 手机网站设计案例电子商务网站建设个人总结
  • 【算法】--位运算
  • 门户网站的案例分析开发游戏用什么软件
  • 网站建设目标个人博客dwzh-cn 安装wordpress
  • 长沙网站优化步骤哈尔滨网站建设渠道
  • 浏览器打开网站wordpress表情不显示
  • 网站图片都是站外连接对seo小公司做网站推广好不好
  • 网站配置到iis后读不了数据seo优化百度技术排名教程
  • 第7章树和二叉树:线索二叉树
  • 网站专题制作流程深圳建网站哪个好
  • java的tomcat源码的http的session
  • 黑河北京网站建设网站架构计划书
  • 局域网网站建设软件怎么自己开公司
  • 网站建设是系统工程广州网站建设 名片制作 网站管理
  • 静态网站做淘宝客如何做英文网站的外链
  • 企业二级网站怎么做建邺做网站价格
  • 【Envi遥感图像处理】018:envi编辑头文件的方法及具体应用
  • RHCE复习作业2
  • AUTOACT论文翻译
  • html5 做手机网站什么是做学院网站
  • ipad 建网站电商入门教学
  • e2ee网站开发框架2.23先行版wordpress小论坛小程序
  • 携程网建设网站的理由济南智能网站建设报价
  • flash网站在线diy源码如何做网站首页关键词
  • B树与B+树核心差异深度解析