Списки, хэши, битовые массивы
В .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).
Подробное описание свойств и методов всех этих классов и интерфейсов можно найти в соответствующих файлах исходного кода.