news 2026/7/2 4:40:36

ArrayList的扩容机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArrayList的扩容机制

new一个无参的list,内部就会创建一个空的数组

public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }

传入有参的list,会创建一个参数大小的数组

public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTDATA; } else { throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); } }

传入一个collection集合,会用集合大小作为起始容量

public ArrayList(Collection<? extends E> c) { Object[] a = c.toArray(); if ((size = a.length) != 0) { if (c.getClass() == ArrayList.class) { elementData = a; } else { elementData = Arrays.copyOf(a, size, Object[].class); } } else { // replace with empty array. elementData = EMPTY_ELEMENTDATA; } }

add方法:

在添加一个元素的时候,会立马创建一个大小为10的数组

在数组满的时候,会进行扩容扩容的大小为原数组大小的1.5倍

这里的1.5倍并不是乘数计算,而是位运算例如:10>>>1 =5,原来的10+5 =15(新数组的大小)

addAll方法:

没有元素的时候,扩容大小Math.max(10,集合大小)

有元素的时候,扩容大小为Math.max(原容量的1.5倍,集合大小)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 2:58:50

Windows系统权限管理终极实战:TrustedInstaller工具完整指南

Windows系统权限管理终极实战&#xff1a;TrustedInstaller工具完整指南 【免费下载链接】LeanAndMean snippets for power users 项目地址: https://gitcode.com/gh_mirrors/le/LeanAndMean 你是否曾遇到过这样的情况&#xff1a;想要修改系统文件却被"拒绝访问&q…

作者头像 李华
网站建设 2026/7/2 2:15:36

智能视频内容提取:三分钟解锁B站知识宝藏新技能

还在为反复回放视频寻找关键信息而烦恼&#xff1f;面对海量B站内容&#xff0c;如何快速获取核心知识点&#xff1f;现在&#xff0c;一款专为内容提取而生的智能工具将彻底改变你的信息处理方式。 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xf…

作者头像 李华
网站建设 2026/6/29 7:07:54

5款高效内容访问工具:轻松突破付费墙限制

在信息爆炸的时代&#xff0c;优质内容往往被付费墙阻挡&#xff0c;让许多用户望而却步。内容访问工具的出现&#xff0c;为这一问题提供了完美的解决方案。这些工具能够智能识别并绕过各种付费墙限制&#xff0c;让您在不增加经济负担的情况下&#xff0c;轻松获取所需信息。…

作者头像 李华
网站建设 2026/6/18 9:11:27

闲鱼自动化工具2025:终极解决方案,每天多赚200闲鱼币!

闲鱼自动化工具2025&#xff1a;终极解决方案&#xff0c;每天多赚200闲鱼币&#xff01; 【免费下载链接】xianyu_automatize [iewoai]主要用于实现闲鱼真机自动化&#xff08;包括自动签到、自动擦亮、统计宝贝数据&#xff09; 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/7/1 13:58:19

百度网盘解析工具终极指南:轻松突破限速实现高速下载

百度网盘解析工具终极指南&#xff1a;轻松突破限速实现高速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的下载速度而烦恼吗&#xff1f;每次看到几十K…

作者头像 李华
网站建设 2026/6/29 6:54:13

PyTorch-CUDA-v2.6镜像是否支持半监督学习?Mean Teacher实现

PyTorch-CUDA-v2.6镜像是否支持半监督学习&#xff1f;Mean Teacher实现 在深度学习项目中&#xff0c;我们经常面临两个核心挑战&#xff1a;环境配置的繁琐性与标注数据的稀缺性。前者拖慢研发节奏&#xff0c;后者限制模型性能上限。而当这两者叠加——比如要在一台新服务器…

作者头像 李华