news 2026/1/23 12:19:00

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/1/17 12:46:27

HuggingFace镜像网站+PyTorch-CUDA-v2.6:大模型训练双剑合璧

HuggingFace镜像网站 PyTorch-CUDA-v2.6&#xff1a;大模型训练的高效实践路径 在如今动辄上百亿参数的大模型时代&#xff0c;一个常见的尴尬场景是&#xff1a;你终于下定决心微调一个LLaMA或Qwen模型&#xff0c;结果第一步就被卡住——下载模型权重慢如蜗牛&#xff0c;等…

作者头像 李华
网站建设 2026/1/20 10:47:37

PyTorch安装失败怎么办?切换至CUDA-v2.6镜像轻松解决

PyTorch安装失败怎么办&#xff1f;切换至CUDA-v2.6镜像轻松解决 在深度学习项目启动阶段&#xff0c;最令人沮丧的场景之一莫过于&#xff1a;代码写好了&#xff0c;环境却“卡”在 import torch 这一行。明明按照官方命令执行了 conda install pytorch torchvision torchau…

作者头像 李华
网站建设 2026/1/20 5:18:09

碧蓝航线Alas自动化脚本终极指南:告别重复操作,重拾游戏乐趣

碧蓝航线Alas自动化脚本终极指南&#xff1a;告别重复操作&#xff0c;重拾游戏乐趣 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScri…

作者头像 李华
网站建设 2026/1/22 15:38:01

JetBrains IDE智能试用周期管理:自动化重置解决方案深度剖析

JetBrains IDE智能试用周期管理&#xff1a;自动化重置解决方案深度剖析 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在当今快速迭代的开发环境中&#xff0c;JetBrains系列IDE凭借其强大的功能和高效的开发体…

作者头像 李华
网站建设 2026/1/9 20:48:01

突破付费墙限制:5分钟掌握Bypass Paywalls Clean完整使用教程

还在为各种网站的付费墙限制而烦恼吗&#xff1f;Bypass Paywalls Clean这款强大的Chrome扩展工具能够帮你轻松解决这个问题。作为一款优秀的内容解锁工具&#xff0c;它通过智能技术手段让你重新获得访问付费内容的自由。 【免费下载链接】bypass-paywalls-chrome-clean 项…

作者头像 李华