Расширение набора базовых классов .NET Framework
Страница 3. Списки, хэши, битовые массивы


Списки, хэши, битовые массивы

В .NET Framework есть готовые классы для организации списков, стеков, очередей, хэшей, словарей. В AcedUtils введены классы, дополняющие этот набор. Они предназначены для повышения производительности и расширения функциональности при работе со списками. Перечень классов:

AcedBitList - эквивалент класса System.Collections.BitArray с большей функциональностью.

AcedList - список объектов, аналогичный ArrayList. Обладает специфической функциональностью, например, реализует интерфейс IAcedStack.

AcedInt32List - упорядоченный список значений типа Int32. При обращении к элементам не выполняется boxing/unboxing, как, например, для набора ArrayList.

AcedKeyList - упорядоченный список ключей типа AcedKey.

AcedSortedList - отсортированный список объектов, реализующих интерфейс IComparable.

AcedSortedInt32List - отсортированный список значений типа Int32.

AcedSortedKeyList - отсортированный список ключей типа AcedKey.

AcedInt32Hashtable - хэш-таблица с ключами типа Int32 и значениями типа Object.

AcedKeyHashtable - хэш-таблица с ключами типа AcedKey и значениями типа Object.

AcedStringHashtable - хэш-таблица с ключами типа String и значениями типа Object.

AcedNamedItems - упорядоченный список наименований с идентификаторами.

Экземпляры классов AcedList, AcedInt32List, AcedKeyList могут использоваться в качестве стека. Для этого они реализуют интерфейсы: IAcedStack, IAcedInt32Stack, IAcedKeyStack, соответственно. Например, интерфейс IAcedInt32Stack описывается следующим образом:

public interface IAcedInt32Stack
{
void Clear();
bool IsEmpty();
int Peek();
int Pop();
void Push(int value);
}

Классы AcedSortedList, AcedSortedInt32List, AcedSortedKeyList реализуют групповые операции над наборами данных: объединение (Merge), пересечение (Intersect), вычитание (Subtract), проверка вхождения (ContainedIn), проверка пересечения (HasIntersection).

Подробное описание свойств и методов всех этих классов и интерфейсов можно найти в соответствующих файлах исходного кода.

 
« Предыдущая статья   Следующая статья »