Основные сведения о массивах

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

В программировании нередко приходится работать не с одним объектом, а с группой элементов. Например, в приложении для воспроизведения музыки может потребоваться создать список песен, ожидающих своей очереди. Было бы затруднительно создавать отдельную переменную для каждой песни в списке. Желательно организовать все объекты Song в одну группу и работать с ними как с одним целым.

Массив — это элемент программирования, который выполняет функцию контейнера для набора элементов, такого как список песен. Чаще всего все элементы в массиве являются экземплярами одного класса, но это не является обязательным условием в ActionScript. Отдельные объекты в массиве называются его элементами. Массив можно представить себе как картотеку для переменных. Переменные можно добавлять в качестве элементов массива, наподобие добавления карточки в картотеку. Массив можно обрабатывать как одну переменную (как будто переставить всю картотеку в другое место). Переменные можно обрабатывать как группу (как будто искать нужную информацию, перебирая карточки). Также можно обращаться к ним в индивидуальном порядке (как будто открыть картотеку и достать из нее одну карточку).

Допустим, что вы создаете музыкальный проигрыватель, в котором пользователь может выбрать несколько песен и добавить их в список воспроизведения. В коде ActionScript есть метод addSongsToPlaylist(), который принимает в качестве параметра один массив. Независимо от количества песен, которые нужно добавить в список (мало, много или всего одну), можно вызвать метод addSongsToPlaylist() только один раз, передав ему массив с объектами Song. Внутри метода addSongsToPlaylist() можно использовать цикл, который будет по одному проходить элементы массива (песни) и фактически добавлять их в список воспроизведения.

Самым распространенным типом массива ActionScript является индексный массив. В индексном массиве каждый элемент хранится в пронумерованном слоте (так называемом индексе). При обращении к элементам этот номер используется в качестве адреса. Индексные массивы подходят для большинства потребностей программирования. Класс Array — это один общий класс, используемый для представления индексного массива.

Нередко индексный массив используется для хранения нескольких элементов одного типа (объектов, являющихся экземплярами одного класса). Класс Array не имеет средств для ограничения типа содержащихся в нем элементов. Класс Vector представляет собой тип индексного массива, в котором все элементы принадлежат одному типу. Используя экземпляр Vector вместо экземпляра Array, можно повысить производительность и получить другие преимущества. Класс Vector доступен для использования, начиная с Flash Player версии 10 и Adobe AIR версии 1.5.

Особым случаем использования индексного массива является многомерный массив. Многомерный массив — это индексный массив, элементами которого являются индексные массивы (которые, в свою очередь, содержат другие элементы).

Другим типом массива является ассоциативный массив, который для идентификации отдельных элементов использует строковый ключ а не числовой индекс. Наконец, язык ActionScript 3.0 также включает класс Dictionary, который представляет собой словарь. Словарь — это массив, который позволяет использовать любой тип объекта в качестве ключа для идентификации элементов.

Важные понятия и термины

Ниже приводится список важных терминов, встречающихся в этой главе и использующихся при программировании приложений, которые оперируют массивами и векторами:

Массив
Объект, который служит контейнером для группировки нескольких объектов.

Оператор доступа к массиву ([])
Пара квадратных скобок, в которые заключен индекс или ключ, являющийся уникальным идентификатором элемента массива. Этот синтаксис используется после имени переменной массива, чтобы указать не весь массив, а один из его элементов.

Ассоциативный массив
Массив, использующий строковые ключи для идентификации отдельных элементов.

Базовый тип
Тип данных для объектов, которые могут храниться в экземпляре Vector.

Словарь
Массив, элементы которого состоят из пар объектов «ключ-значение». Ключ используется для идентификации одного объекта вместо числового индекса.

Элемент
Один элемент в массиве.

Указатель
Числовой «адрес», используемый для идентификации одного элемента в индексном массиве.

Индексный массив
Стандартный тип массива, который сохраняет каждый элемент в пронумерованной позиции и использует эти номера (индексы) для идентификации отдельных элементов.

Клавиша
Строка или объект, используемый для идентификации одного элемента в ассоциативном массиве или словаре.

Многомерный массив
Массив, содержащий элементы, которые являются массивами, а не одиночными значениями.

T
Стандартное сокращение, которое в данной документации обозначает базовый тип экземпляра Vector независимо от того, чем он представлен. Сокращение T служит для представления имени класса, как показано в описании параметра Type. («Т» обозначает «тип», как в словосочетании «тип данных»).

Параметр типа
Синтаксис, который используется с именем класса Vector, чтобы указать его базовый тип (тип данных для сохраняемых объектов). Синтаксис содержит точку (.), затем следует имя типа данных в угловых скобках (<>). В целом параметр типа выглядит так: Vector.<T>. В данной документации класс, указанный в параметре типа, представлен в общем виде: T.

Вектор
Тип массива, все элементы которого относятся к одному типу данных.