动态数组是计算机程序设计中使用的一种数据结构,它将多个计算对象作为一个组,并且可以随意调整大小以适应不同数量的对象。动态数组保存在一个连续的内存块中,因此对元素的访问既高效又快速。动态数组也称为向量或列表,取...
动态数组是计算机程序设计中使用的一种数据结构,它将多个计算对象作为一个组,并且可以随意调整大小以适应不同数量的对象。动态数组保存在一个连续的内存块中,因此对元素的访问既高效又快速。动态数组也称为向量或列表,取决于使用它们的计算机语言。尽管有这些名称,任何特定的列表或向量都可能不是动态数组,由于列表和向量可以不同于数组和彼此实现。

C++包含一个称为vector的动态数组类,它位于一组称为标准模板库的类中。C++包含一个名为vector的动态数组类,它位于一组称为标准模板库的类中。支持该类的数组可以通过迭代器或索引访问。它可以按需调整大小是一个很大的优势,但它可能会诱使程序员产生一种错误的安全感,因为它不像看上去那么健壮。支持向量的动态数组无法确保访问请求有效。与静态数组一样,如果程序试图访问尚未分配给动态数组的内存,则动态数组可能存在边界检查和内存损坏问题Java包含三个不同的动态数组类:Vector、ArrayList和CopyOnWriteArrayList数组中的元素只由索引访问,并且试图访问数组外的索引通常不会导致内存损坏问题。java vector类大致相当于C++向量类,并且不同步以允许多线程访问。都是线程安全的。在这三个类中,CopyOnWriteArrayList是最劳动密集的类,因为每次向数组中写入新值时,它都会完全重新创建动态数组。动态数组的实现方式基本上是相同的,而不考虑所涉及的计算机语言,而是取决于其中的特定语言动态数组可以是建立在它之上的其他功能。像静态数组一样,动态数组不限制可以存储在其中的对象的类型,只要它们都是同一类型的对象。程序员永远不需要直接访问动态数组;它总是可以通过一个封装数组的类来完成,为了便于使用,正确使用这些数组可以帮助程序员在代码内部组织数据,还可以创建易于维护的可理解代码