java中ArrayList集合怎么扩容
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要讲解了"java中ArrayList集合怎么扩容",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java中ArrayList集合怎么扩容"吧
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
守护青春网络安全文案
连接数据库时提示文件正在使用
网络安全法实施条例第三章
服务器一兆带宽多少钱
pg数据库视图依赖的表
asp数据库期刊分类统计
软件开发进度计划范文
TBC狮心服务器人口普查
华为hg8245打印服务器设置
微软服务器分析
数据库framework
组态王连接服务器报警
为什么服务器版本号不匹配
闲鱼软件开发破解
河北软件开发销售价格
服务器内容违规被运营商查封
数据库怎么查游戏密码
数据库系统如何配置
四川优居匠网络技术
软件集成工程师和软件开发
数据库文件或附属文件有缺失
怎么让别人连上自己数据库
捷成有网络安全概念吗
战舰世界服务器被炸
c 创建数据库的代码
为什么服务器版本号不匹配
做软件开发的要考哪些试
魔兽世界178数据库不更新
叙述软件开发的产品分析过程
非遗数据库图