Использование ассоциативного массива
Материал из Вики ИТ мехмата ЮФУ
Назначение
АТД Ассоциативный массив Dictionary<K, V> осуществляет отображение из значений типа K в значения типа V. Частным случаем ассоциативного массива является обычный массив элементов типа V: у него в качестве типа K выступают целые числа (тип integer).
Пример
uses System.Collections.Generic; // стандартный модуль
// …
var m := new Dictionary<string, integer>; // отображение из строк в целые
m['Крокодил'] := 3; // указываем значение отображения на элементе 'Крокодил'
m.Add('Бегемот', 2); // аналогично предыдущему, просто другой синтаксис.
{
В данной точке программы строка:
var n := m['Леопард'] + 1;
вызовет исключение, потому что мы не определяли отображение на элементе 'Леопард'.
Чтобы этого не случилось, выполним проверку:}
if m.ContainsKey('Леопард') then
var n := m['Леопард'] + 1;
foreach k: KeyValuePair<string, integer> in m do
writeln(k.Key, ' ', k.Value); // печатаем значения отображения на всех определённых ранее элементах
Интерфейс
Стандартные классы, реализующие ассоциативный массив,
- Dictionary<Key, Value>,
- SortedDictionary<Key, Value>,
- SortedList<Key, Value>
имеют следующий интерфейс:
Add(k: Key; v: Value); Clear; ContainsKey(k: Key): boolean; ContainsValue(v: Value): boolean; Remove(k: Key): boolean; TryGetValue(k: Key; var v: Value): boolean; ToString: string; property Count: integer; property Item[k: Key]: Value;