首页 > 解决方案 > ArrayList vs Array 中的元素是如何分配的?

问题描述

根据我正在读的一本书

数组列表的容量和数组的大小之间有一个重要的区别。如果您分配一个包含 100 个条目的数组,则该数组有 100 个插槽,可供使用。一个容量为 100 个元素的数组列表有可能容纳 100 个元素(事实上,超过 100 个,代价是额外的重新分配)——但在开始时,即使在其初始构造之后,数组列表也不能容纳元素。

但是,我们也可以创建一个没有定义任何容量的 ArrayList。

没有定义任何容量的 ArrayList 和具有容量的 ArrayList 将如何分配其元素,以及我们何时应该使用一个而不是另一个?

唯一让我印象深刻的是,如果在两种方式中(有容量的 ArrayList 和没有容量的 ArrayList),为什么我们会有容量,值将被以相同的方式处理,所以我想到的唯一可能的原因是它们都持有价值观不同。

标签: javaarraysarraylist

解决方案


提供初始分配的原因是预先分配保存那么多项目所需的内存表示,否则所有添加的项目都需要动态分配。请注意,一旦数组包含预分配项目的数量,动态分配就变得必要了。


推荐阅读