Турбо Паскаль 6.0


TSortedCollection Objects


+---------+ | TObject | +----+----+ +------+------+ | TCollection | +------+------+ +========+==========+ | TSortedCollection | +========+==========+ +--------+----------+ | TStringCollection | +--------+----------+ +---------+-----------+ | TResourceCollection | +---------------------+

TSortedCollection порожден от TCollection и реализует коллекцию, отсортированную по ключу без дублирования. Сортировка производится методом TStringCollection.Compare, который Вы перекрываете, чтобы задать свое определение упорядочивания элементов. Когда новые элементы добавляются, они автоматически втавляются в порядке, заданном методом Compare. Элементы будут располагаться, используя двоичный метод поиска TStringCollection.Search. Виртуальный метод KeyOf, возвращающий указатель для Compare, так же может быть перекрыт, если Compare требует дополнительной информации.

Методы

Compare function Compare(Key1, Key2: Pointer): Integer; virtual; Перекрывается: Всегда Compare - это абстрактный метод, который должен быть перекрыт во всех порожденных типах. Compare должен сравнивать 2 ключевых значения и возвращать результат:

-------------------------------------------- -1 if Key1 < Key2 0 if Key1 = Key2 1 if Key1 > Key2 --------------------------------------------

Key1 и Key2 - это значения указателей, извлеченных из соответствующей коллеции элементов методом TSortedCollection.KeyOf. Метод TSortedCollection.Search реализует двоичный поиск элементов коллекции, используя Compare для сравнения элементов.

См. так же: TSortedCollection.KeyOf, TSortedCollection.Compare

IndexOf function IndexOf(Item: Pointer): Integer; virtual; Перекрывается: Никогда Использует TSortedCollection.Search для нахождения индекса элемента Item. Если элемент не в коллекции, IndexOf возвращает -1. Реализация TSortedCollection.IndexOf:

if Search(KeyOf(Item), I) then IndexOf := I else IndexOf := -1;

См. так же: TSortedCollection.Search

Insert procedure Insert(Item: Pointer); virtual; Перекрывается: Никогда Если элемент не найден в коллекции, он вставляется в позицию, определенную индексом, вызывает TSortedCollection.Search для определения, существует ли элемент. Если нет, куда вставить его. Реализация TSortedCollection.Insert:




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



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