数组基础知识



处理数组简介

在编程中经常需要处理一组项目而不是单个对象。例如在一个音乐播放器应用程序中,您可能需要创建一个待播放歌曲列表。您不希望必须为该列表中的每首歌曲都单独创建一个变量。更好的做法是将所有 Song 对象放在一个包中,从而能够将其作为一个组进行处理。

数组是一种编程元素,它用作一组项目的容器,如一组歌曲。通常,数组中的所有项目都是相同类的实例,但这在 ActionScript 中并不是必需的。数组中的各个项目称为数组的“元素”。可以将数组视为变量的“文件柜”。变量可以作为元素添加到数组中,就像将文件夹放到文件柜中一样。您可以将数组作为单个变量使用(就像将整个文件柜搬到另一个地方一样)。您可以将变量作为一个组使用(就像逐一浏览文件夹以搜索一条信息一样)。也可以分别访问这些变量(就像打开文件柜并选择一个文件夹一样)。

例如,假设您要创建一个音乐播放器应用程序,用户可以在其中选择多首歌曲,并将这些歌曲添加到播放列表中。在您的 ActionScript 代码中有一个名为 addSongsToPlaylist() 的方法,该方法接受单个数组作为参数。无论要将多少首歌曲(几首、很多首甚至只有一首)添加到列表中,您都只调用一次 addSongsToPlaylist() 方法,并向其传递包含 Song 对象的数组。在 addSongsToPlaylist() 方法中,可以使用循环来逐个访问数组元素(歌曲),并将歌曲实际添加到播放列表中。

最常见的 ActionScript 数组类型为“索引数组”。在索引数组中,每个项目都存储在编号位置(称为“索引”)。可以使用该编号来访问项目,如同地址一样。索引数组可以很好地满足大多数编程需要。Array 类是用于表示索引数组的常见类。

索引数组常常用于存储具有相同类型的多个项目(作为同一类的实例的对象)。Array 类没有任何办法限制它所包含的项目的类型。Vector 类是一种索引数组类型,其中单个数组中的所有项目都具有同一类型。使用 Vector 实例而不是 Array 实例还可以提供性能改进和其它优势。从 Flash Player 10 和 Adobe AIR 1.5 开始提供 Vector 类。

索引数组的一个特殊用法是“多维数组”。多维数组是一种索引数组,其中的元素也是索引数组(这些数组又包含其它元素)。

另一种数组类型是“关联数组”,该数组使用字符串“键”(而不是数字索引)来标识各个元素。最后,ActionScript 3.0 还包括表示“字典”的 Dictionary 类。字典是允许您将任何类型的对象用作键来区分元素的数组。

常见数组任务

本章介绍了以下常见的数组使用活动:

  • 使用 Array 类和 Vector 类创建索引数组

  • 添加和删除数组元素

  • 对数组元素进行排序

  • 提取数组的某些部分

  • 处理关联数组和字典

  • 处理多维数组

  • 复制数组元素

  • 创建数组子类

重要概念和术语

以下参考列表包含将会在本章中遇到的重要术语:

  • 数组:用作容器以将多个对象组合在一起的对象

  • 数组访问 ([]) 运算符:一对方括号,其中含有唯一标识数组元素的索引或键。此语法用在数组变量名称之后,以指定数组的单个元素而不是整个数组。

  • 关联数组:使用字符串键来标识各个元素的数组

  • 基本类型:允许 Vector 实例存储的对象的数据类型

  • 字典:其项目由一对对象(称为键和值)组成的数组。它使用键来标识单个元素,而不是使用数字索引。

  • 元素:数组中的单个项目

  • 索引:用于标识索引数组中的单个元素的数字“地址”

  • 索引数组:标准类型的数组,将每个元素存储在编号位置中,并使用数字(索引)来标识各个元素

  • 键:用于标识关联数组或字典中的单个元素的字符串或对象

  • 多维数组:包含的项目是数组(而不是单个值)的数组

  • T:本文档中使用的标准约定,用于表示 Vector 实例的基本类型(与具体的基本类型无关)。T 约定用于表示类名称,如 Type 参数说明中所示。(“T”表示“类型”,如同在“数据类型”中一样。)

  • Type 参数:与 Vector 类名称一起使用以指定 Vector 的基本类型(它存储的对象的数据类型)的语法。该语法包括一个点 (.),然后是由尖括号 (<>) 括起来的数据类型名称。放在一起后类似于:Vector.<T>。在本文档中,在 type 参数中指定的类通常表示为 T

  • 矢量:一种数组类型,其所有元素都是同一数据类型的实例

完成本章中的示例

在学习本章时,您可能想要自己动手测试一些示例代码清单。实质上本章中的代码清单包括适当的 trace() 函数调用。要测试本章中的代码清单,请执行以下操作:

  1. 使用 Flash 创作工具创建空文档

  2. 在时间轴上选择一个关键帧。

  3. 打开“动作”面板,将代码清单复制到“脚本”窗格中。

  4. 通过“控制”>“测试影片”运行程序。

    可在“输出”面板中看到 trace() 函数的结果。

用于测试示例代码清单的此项技术以及其它技术在测试本章内的示例代码清单中有详细的介绍。