java中ArrayList集合怎么扩容
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"java中ArrayList集合怎么扩容",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java中ArrayList集合怎么扩容"吧
千家信息网最后更新 2026年10月31日java中ArrayList集合怎么扩容
这篇文章主要讲解了"java中ArrayList集合怎么扩容",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java中ArrayList集合怎么扩容"吧!
1、扩容要看添加方法,从属性中可以看出有一个DEFAULT_CAPACITY属性值10。
public boolean add(E e) { // 验证是否需要扩容操作 ensureCapacityInternal(size + 1); // Increments modCount!! // 在对应的下标下添加值 elementData[size++] = e; return true;}2、刚刚进入ensureCapacityInternal(size+1)size是一个完整的变量。
标记了ArrayList的大小(包含的元素数),而此时没有元素的是ensureCapacityInternal(0+1)。
//1、进入这个方法private void ensureCapacityInternal(int minCapacity) { //2、先调用calculateCapacity(elementData, minCapacity)、这个方法就是检查第一次添加数据、并返回默认的容器大小(就是10) // 4、就是执行这个方法ensureExplicitCapacity(10) // 为什么参数是10、就是因为这个方法calculateCapacity(elementData, minCapacity)做了操作。 ensureExplicitCapacity(calculateCapacity(elementData, minCapacity));}//3、数组容量计算private static int calculateCapacity(Object[] elementData, int minCapacity) { // 这个能处理就是第一次添加数据时为真 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { // 然后这个成立、这个方法是取参数1和参数2、两个数之间的值 // DEFAULT_CAPACITY : 默认为10 // minCapacity : 第一次添加数据为1 // 所以10 和 1 、10大、最后将10返回出去 return Math.max(DEFAULT_CAPACITY, minCapacity); } return minCapacity;} //5、确保显式容量private void ensureExplicitCapacity(int minCapacity) { modCount++; // 6、做判断、 // 第一次添加数据时 为 10-0 > 0 :第一次可以成立 // 第二次添加数据时 为 2-10 > 0 :第二次可以不成立 if (minCapacity - elementData.length > 0) //7、执行下面方法、这个方法的作用才是正真的实施扩容并确定首次扩容ArrayList容器大小的方法 grow(minCapacity);//扩容}感谢各位的阅读,以上就是"java中ArrayList集合怎么扩容"的内容了,经过本文的学习后,相信大家对java中ArrayList集合怎么扩容这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
方法
就是
数据
第一次
参数
大小
学习
元素
内容
容器
容量
验证
下标
两个
之间
从属性
作用
变量
属性
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
A股互联网金融科技公司
疫情对互联网科技公司影响
科技服务与互联网
狮子座互联网科技有限公司
广州互联网络科技有限公司
新浪科技互联网
恒生科技互联网指数分析
互联网科技公司的市场部门
广州优美互联网科技
昊天互联网科技有限公司
千方科技属于互联网企业吗
广州市恰铎互联网科技有限公司
乌鲁木齐新华智原互联网科技学校
滨湖区互联网智能科技产品有哪些
山东星卡互联网科技有限公司官网
卡尔迅互联网科技有限公司
广州有谷有贝互联网科技有限公司
山东蛋芒互联网科技有限公司
北京瑞云互联网科技有限公司
互联网科技快速发展优美句子
互联网科技有限公司
A股互联网金融科技公司
重庆互联网络科技
万易互联网科技有限公司
互联网 视角下的科技创新
重庆科技学院互联网
互联网科技公司需要的职位
浙南科技城互联网大厦建设工程
恒生科技互联网指数十大成分股
互联网科技快速发展优美句子