java - ArrayList vs Array 中的元素是如何分配的?
问题描述
根据我正在读的一本书
数组列表的容量和数组的大小之间有一个重要的区别。如果您分配一个包含 100 个条目的数组,则该数组有 100 个插槽,可供使用。一个容量为 100 个元素的数组列表有可能容纳 100 个元素(事实上,超过 100 个,代价是额外的重新分配)——但在开始时,即使在其初始构造之后,数组列表也不能容纳元素。
但是,我们也可以创建一个没有定义任何容量的 ArrayList。
没有定义任何容量的 ArrayList 和具有容量的 ArrayList 将如何分配其元素,以及我们何时应该使用一个而不是另一个?
唯一让我印象深刻的是,如果在两种方式中(有容量的 ArrayList 和没有容量的 ArrayList),为什么我们会有容量,值将被以相同的方式处理,所以我想到的唯一可能的原因是它们都持有价值观不同。
解决方案
提供初始分配的原因是预先分配保存那么多项目所需的内存表示,否则所有添加的项目都需要动态分配。请注意,一旦数组包含预分配项目的数量,动态分配就变得必要了。
推荐阅读
- javascript - 在网页上通过 JavaScript 模拟鼠标滚轮旋转
- php - 如何从主题中删除 woocommerce.css 文件?
- android - 如何在 intelliJ (maven) 中调试/启动 Android 应用程序
- bash - 无法将命令存储到bash中的变量
- neo4j - Neo4j - 大于 11 的可变长度永远运行并且查询永远不会返回
- r - 如何计算 Rstudio 中一组特定行的平均值
- r - 如何在R中隐藏滑块?
- php - 此集合实例上不存在异常属性 [图像]
- python - 更快地对包含 10k+ 个文件的文件夹中的 CSV 列表进行排序
- reactjs - Auth0 没有通过 react.js 类组件传递用户道具