`

as3中数组array与vector的区别

阅读更多

ActionScript 3.0 中可用的另一种索引数组类型为 Vector 类。Vector 实例是“指定类型的数组”,这表示 Vector 实例中的所有元素始终具有同一数据类型。

注: 从 Flash Player 10 和 Adobe AIR 1.5 开始提供 Vector 类。

在声明 Vector 变量或实例化 Vector 对象时,要显式指定 Vector 可以包含的对象的数据类型。指定的数据类型称为 Vector 的“基本类型”。在运行时和编译时(在严格模式下),会检查任何设置 Vector 元素的值或从 Vector 检索值的代码。如果要添加或检索的对象的数据类型与 Vector 的基本类型不匹配,则会发生错误。

除数据类型限制之外,Vector 类还具有一些其它限制,从而有别于 Array 类:

  • Vector 是一种密集数组。即使某个 Array 对象在位置 1 到 6 没有值,该对象的索引 0 和 7 处也可以有值。但是,Vector 的每个索引位置都必须有值(或为 null)。

  • Vector 还可以是固定长度。这表示 Vector 包含的元素数不能更改。

  • 对 Vector 的元素的访问需要接受范围检查。绝对不能从大于最后一个元素索引 (length - 1) 的索引中读取值。绝对不能对超过当前最后一个索引一个以上位置的索引设置值(也就是说,只能在现有索引或索引 [length] 处设置值)。

可以使用 type 参数语法指定 Vector 的基本类型。在代码中,类型参数紧跟单词 Vector。它包括一个点 (.),然后是由尖括号 (<>) 括起来的基类名称,如此示例中所示:

vector定义数组及类型的方法var v:Vector.<String>; v = new Vector.<String>();
  • 性能:使用 Vector 实例时的数组元素访问和迭代的速度比使用 Array 实例时的速度要快很多。

  • 类型安全性:在严格模式下,编译器可以识别数据类型错误。这类错误的例子包括将数据类型错误的值分配给 Vector 或从 Vector 中读取值时使用错误的数据类型。在运行时,当向 Vector 对象添加数据或从 Vector 对象读取数据时也会检查数据类型。但请注意,当使用 push() 方法或 unshift() 方法向 Vector 添加值时,在编译时不会检查参数的数据类型。不过在使用这些方法时,仍会在运行时检查值。

  • 可靠性:与 Array 相比,运行时范围检查(或固定长度检查)大大提高了可靠性。

除了有一些限制和优点以外,Vector 类与 Array 类非常相似。Vector 对象的属性和方法与 Array 的属性和方法类似(大多数情况下完全相同)。对于大多数需要使用所有元素都具有相同数据类型的 Array 的情况,Vector 实例更为可取。

分享到:
评论

相关推荐

    as3数据结构-中文注释.rar

    1. **数组**:AS3中的Array类是最基本的数据结构,用于存储一组有序的元素。可以存储任意类型的值,通过索引访问元素。数组分为动态数组和固定长度数组,动态数组的长度可以在运行时改变,而固定长度数组的长度在...

    VBA 数组入门

    Dim arrSheetName(1 to 3) As String '静态数组,上下界分别为1和3 ``` 三、静态数组与动态数组 静态数组的大小在声明时固定,适用于已知元素数量的情况。动态数组则通过`ReDim`语句在运行时重新分配大小。例如: `...

    as3基础模块

    AS3提供了Array、Vector和Object等数据结构。Array是动态大小的列表,而Vector提供类型安全和性能优化的数组。Object是所有其他对象的基类,可以用来存储键值对,类似于JavaScript的对象。 六、网络通信 AS3提供了...

    AS3 Data Structures For Game Developers.zip

    Vector是AS3中的优化版数组,它提供类型安全和更好的性能。与数组相比,Vector在编译时就确定了元素类型,从而避免了运行时类型检查的开销。在处理大量游戏对象或需要高性能操作时,Vector是理想选择。 3. **链表...

    VBA-Vector:VBA中Vector类的实现

    arr = Array( 1 , 2 , 3 ) vector.Convert(arr) 现在,您可以使用舒适的语法,支持Add() , Count() , Delete() , Sort()等方法。 您可以在找到更多信息。 例子 初始化ClassVector项并添加新元素: Dim vector ...

    as3学习文档

    在 AS3 中,数组有两种形式:`Array` 和 `Vector`。 **示例代码:** ```as3 var arr:Array = [1, "two", 3.0]; trace(arr[1]); // 输出: two ``` #### 七、日期类型(Date) 日期类型用于处理日期和时间。它可以...

    Animate游戏:2048(AS3)

    AS3的Array和Vector类提供了高效的数据存储和访问方式,方便进行数组操作,如合并方块。 6. **算法实现**:2048的核心算法包括合并和填充空位。在AS3中,这些算法通过循环和条件判断实现,确保每次滑动后都能正确...

    as3实现经典寻路

    在AS3中,你可以使用Array或Vector类创建二维数组来表示地图,用LinkedList或PriorityQueue类实现开放列表和闭合列表。关键在于设计好节点对象,包含位置、G、H、F值以及指向相邻节点的引用。编写好A*核心算法后,...

    使用NumPy的3D数学函数_Python_下载.zip

    vector1 = np.array([1, 2, 3]) vector2 = np.array([4, 5, 6]) # 点积 dot_product = np.dot(vector1, vector2) ``` 此外,NumPy与另一个库Pyrr结合使用,可以进一步扩展3D数学功能。Pyrr库提供了许多高级的3D...

    PHP数组实例详解_.docx

    这种数组类似于 C++ 中的 `vector`。 ##### **声明与初始化** 1. **自动分配键名**: ```php $names = array("Peter", "Joe", "Lily"); ``` 2. **手动指定键名**: ```php $names[0] = "Peter"; $names[1] ...

    as3.0 cookbook 完整版

    - **数组类型**:AS3支持两种类型的数组:Array和Vector。Array是一种动态大小的数组,而Vector是一种固定大小的数组,但可以动态调整其容量。 - **数组操作**:AS3提供了丰富的数组操作方法,包括排序、搜索、拼接...

    AS3.0地图制作,很好的资源

    AS3.0提供了Array和Vector两种内置数据结构,可以灵活选择适合的地图数据存储方案。 4. **图像加载和位图处理**:地图可能由多张图片拼接而成,需要使用Loader类加载图片并进行合并。位图数据可以使用BitmapData类...

    AS3 让一张图片变成火焰特效的代码

    在本文中,我们将深入探讨如何使用AS3(ActionScript 3)将一张普通的图片转换为动态的火焰特效。ActionScript是Adobe Flash中的编程语言,它为开发者提供了强大的功能,包括创建交互式内容、动画和视觉效果。对于这...

    Flash as3 随机出题DEMO.rar

    1. **ActionScript 3基础**:AS3是Flash编程的主要语言,与AS2相比,它更面向对象,拥有更好的性能和更严格的类型检查。在DEMO中,AS3被用来控制动画、事件处理和逻辑运算。 2. **类和对象**:随机出题和显示答案的...

    数组做函数参数退化问题剖析-传智扫地僧

    另一种常见做法是使用`std::vector`或`std::array`等STL容器,它们在C++中提供了更安全和方便的数组操作。 此外,C99引入了可变参数列表(variable-length argument lists,VLAs)的功能,允许在运行时动态确定数组...

    Fortran 90 & 95 Array and Pointer Techniques

    - 数组作为对象(Arrays as Objects),允许在程序中以对象的方式进行操作和传递。 - 整体数组(Whole Arrays)和数组片段(Array Sections)是Fortran中的重要概念,它们允许对数组的一块连续区域进行操作。 - 整体...

    as3模拟大话西游背包系统

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)来模拟“大话西游”游戏中的背包系统。这个系统通常包含四个背包,每个背包都有特定的功能和存储规则,用于管理玩家在游戏中获取的各种物品。 一、...

    AS游戏设计常用数据结构

    在AS中,我们可以使用Array类来创建数组。数组的索引从0开始,可以存储任意类型的值,但不适用于存储大量不同类型的数据,因为数组查找效率较低,为O(n)。 链表(LinkedList)是另一种常见数据结构,适合频繁插入和...

    python numpy数组中的复制知识解析

    这将创建一个新的数组`new_vector`,它与`vector`具有相同的元素,但彼此独立,修改`new_vector`不会影响`vector`。 了解了复制的基本概念后,我们还可以探讨其他的数组操作,如组合、分割、重复和转置等。例如,`...

Global site tag (gtag.js) - Google Analytics