如果您的目标是Flash Player 10,那么有理由坚持使用数组作为默认列表数据结构吗?为什么不在整个程序中将Vectors(类型化数组)作为默认值,因为它们具有以下优点:
- 更快
- 类型检查
它的性能表现差或者产生更高的内存开销吗?还有什么理由使用数组吗?
如果您的目标是Flash Player 10,那么有理由坚持使用数组作为默认列表数据结构吗?为什么不在整个程序中将Vectors(类型化数组)作为默认值,因为它们具有以下优点:
它的性能表现差或者产生更高的内存开销吗?还有什么理由使用数组吗?
有很多原因。例如,向量不是稀疏的,因此如果您的向量索引为999,则您具有1,000个元素的数组。在标准数组中,您可能只有一个元素。
根据我对此问题的了解,我将回答自己的问题。
仅针对以下数据类型,向量才更快: -- (证明)
数组则适用于所有其他类型:
向量使用时更加受限制:
向量使用起来更加麻烦:
向量可以更容易地进行调试:
正如Robusto所说,向量不是稀疏的。虽然这可能对大小来说不好,但它对速度非常有利。因此,如果您不需要非常稀疏的数据结构(实现这些稀疏结构也需占用一些额外的空间),您可以充分利用速度。
这是典型的权衡:内存与速度之间的平衡 :-)
这取决于你想做什么。尝试对向量进行排序?这将需要更长的时间。你是否需要拼接数组或向量?如果是这样,你可能想放弃它们并使用链表。如果你正在寻找具有命名键且需要引用的内容,则可能会使用字典。这是一个模糊、无用的答案——“这取决于情况”——但确实如此。之所以有这么多不同的数据列表结构,是有原因的。