news 2026/4/18 13:51:14

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/4/18 5:26:17

终极指南:UABEA Unity资产提取器从零开始完整教程

终极指南&#xff1a;UABEA Unity资产提取器从零开始完整教程 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor&#xff08;资源包提取器&#xff09;&#xff0c;用于提取游戏中的资源。 项目地址: https://gitcode.com/gh_mirrors/ua/UA…

作者头像 李华
网站建设 2026/4/18 5:26:04

Chrome扩展神器:三步解锁付费内容实现免费阅读

在信息获取成本日益增加的今天&#xff0c;你是否也面临着优质内容被付费墙阻挡的困境&#xff1f;通过一款强大的Chrome扩展工具&#xff0c;你可以轻松实现免费阅读&#xff0c;重新获得知识获取的自由。这款内容访问优化工具为数字阅读提供了完美的解决方案。 【免费下载链接…

作者头像 李华
网站建设 2026/4/17 19:40:03

【毕业设计】SpringBoot+Vue+MySQL 数字化农家乐管理平台平台源码+数据库+论文+部署文档

摘要 随着信息技术的快速发展和乡村旅游的兴起&#xff0c;农家乐作为乡村经济的重要组成部分&#xff0c;亟需通过数字化手段提升管理效率和服务质量。传统的农家乐管理方式依赖人工操作&#xff0c;存在信息传递滞后、资源调配不合理、客户体验不佳等问题。数字化农家乐管理平…

作者头像 李华
网站建设 2026/4/17 18:19:39

Java Web 水产养殖系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 水产养殖行业作为全球重要的食品生产领域&#xff0c;近年来面临诸多挑战&#xff0c;包括资源管理效率低下、数据记录不准确以及环境监测不及时等问题。传统的水产养殖管理系统多依赖人工记录和单机操作&#xff0c;难以满足现代规模化养殖的需求。随着信息技术的快速发展…

作者头像 李华
网站建设 2026/4/17 17:42:49

终极显卡调校指南:3步释放NVIDIA隐藏性能

你是否曾经觉得自己的显卡性能没有被完全利用&#xff1f;明明配置不错&#xff0c;游戏体验却总差那么一点点&#xff1f;其实NVIDIA显卡中隐藏着大量官方控制面板无法触及的高级设置&#xff0c;今天我们就来揭秘如何通过NVIDIA Profile Inspector这款免费工具&#xff0c;让…

作者头像 李华
网站建设 2026/4/18 9:40:02

FastAPI+Swagger技术栈详解:从入门到实战,高效构建API服务

FastAPISwagger技术栈详解&#xff1a;从入门到实战&#xff0c;高效构建API服务 在Python后端API开发领域&#xff0c;FastAPI凭借其惊人的性能、简洁的语法和强大的功能迅速崛起&#xff0c;而Swagger作为交互式API文档工具&#xff0c;与FastAPI的完美集成更是让开发效率翻…

作者头像 李华