Основы офисного программирования и язык VBA


Встроенный динамический класс Collection - часть 2


Конечно же, совсем просто реализуется обычный односвязный список с возможностью добавления элементов в начало или конец списка. Но можно реализовать и значительно более мощную структуру, называемую словарем. Словарь представляет собой связанную совокупность пар элементов. Первый элемент пары называется ключом, второй - информационным полем. Особенностью словарей является то, что, зная ключ элемента, можно получить доступ к информационному полю. При этом, обратите внимание, в классе Collection на ключ не накладывается никаких ограничений, - это обычная строка. Немаловажно, что есть и альтернативный способ прямого доступа к элементам коллекции по индексу, когда в качестве ключа выступает порядковый номер элемента в коллекции. Таким образом, коллекция соединяет в себе достоинства списков и массивов.

Приведем теперь пример процедуры, подробнее демонстрирующий работу с коллекцией. Наша коллекция будет включать данные двух типов: целочисленные и строковые. Часть элементов будет иметь ключ, остальные - только индекс. Элементы будут добавляться в заданную позицию и удаляться. Отладочная печать позволит проследить за этим процессом:

Пример 5.8.

(html, txt)

Приведем теперь результаты отладочной печати:

Число элементов пустой коллекции = 0 Число элементов после 6-и вызовов метода Add = 6 Элементы коллекции: один 2 три 4 пять 6 Число элементов после двух вызовов метода Remove = 4 Элементы коллекции: один 2 три 6

Подчеркнем еще раз основные свойства класса Collection:

  1. Класс позволяет объединять в коллекцию элементы разных типов, хотя чаще применяются однотипные коллекции.
  2. Класс объединяет в себе свойства линейного списка, динамического массива и структуры, называемой словарем , или отображением (map).
  3. Это список, поскольку определена операция Add, позволяющая динамически добавлять элементы в конец списка.
  4. Это динамический массив, поскольку все элементы индексированы и к ним возможен прямой доступ по индексу. С другой стороны, размер массива не фиксируется и динамически изменяется при добавлении и удалении элементов.
  5. Это словарь, поскольку добавляемые элементы могут иметь ключ.


    Начало  Назад  Вперед



    Книжный магазин