Java ArrayList与动态数组相比如何
Java ArrayList与动态数组相比如何,java,data-structures,arraylist,Java,Data Structures,Arraylist,ArrayList只是动态数组的接口吗?或者他们是同一件事 比如:ArrayList对应于动态数组,HashMap对应于Map 除非是ArrayList,否则我看不到任何类似动态数组的Java API 在这种情况下,它们将是相同的东西 假设它们是同一件事?如果在动态意义上你指的是一个大小可以改变的数组,那么列表就是一个动态数组的接口。它被命名为ArrayList,因为它在内部使用数组,仅此而已 您的类比不适用于java collections框架,因为您可以说ArrayList是一个动态数组,但
ArrayList
只是动态数组的接口吗?或者他们是同一件事
比如:ArrayList
对应于动态数组,HashMap
对应于Map
除非是ArrayList
,否则我看不到任何类似动态数组的Java API
在这种情况下,它们将是相同的东西
假设它们是同一件事?如果在动态意义上你指的是一个大小可以改变的数组,那么
列表
就是一个动态数组的接口。它被命名为ArrayList
,因为它在内部使用数组,仅此而已
您的类比不适用于java collections框架,因为您可以说
ArrayList
是一个动态数组,但Map
(或HashMap
)没有“原始”对应项。ArrayList
是列表
接口的可调整大小的数组实现。因此,如果您需要一个动态数组,这可能就是您想要的。
ArrayList
不是一个动态数组,它不是一个数组类型动态或非动态,它只是列表
接口的实现之一。理解和之间的区别。另一方面,是具有固定大小的容器对象 是的。简而言之。一个较长的解释是,
ArrayList
是一个使用数组存储的集合,而不是链表、双链表或类似的集合。这意味着它提供了使用数组的所有好处,而Java则负责为您调整数组大小的机制(动态)
我似乎记得,初始数组是使用默认的最大大小(可以由用户指定)创建的。如果集合空间不足,则会创建一个更大的数组,并将原始数组的内容复制到新数组中。设置大小增量是为了防止这种情况过于频繁,因为操作成本相当高
T[]
(T的数组
)之间存在差异。