Ассоциативный массив

Ассоциативный массив (словарь) — структура данных, массив, идентификаторами элементов которого являются не только целые числа, но и данные других типов (обычно строки). Идентификаторы обычно называются ключами. В отличие от индексного массива отсутствует строгая упорядоченность элементов. Обычные массивы могут рассматриваться как частный случай словаря, где ключ — это целое число

Поддержка ассоциативных массивов есть во многих интерпретируемых языках программирования высокого уровня (Perl, PHP, Ruby и др.). В языке C++ поддержка ассоциативных массивов включена в стандартную библиотеку (контейнер map).

Содержание

Достоинства

  • наглядность, удобство для человека, возможность присвоить каждому элементу осмысленный идентификатор
  • лёгкость добавления или удаления элементов, так как в общем случае не требуется изменения позиций других

Недостатки

  • дополнительный расход памяти на идентификаторы (даже если они хранятся в виде хеша)
  • сложность поиска элемента по ключу
  • сложность создания оптимизированных компиляторов для языка, в котором существует понятие ассоциативного массива

Пример

Python

 d1 = dict( a=10, b=20 )
 d2 = {'a':10, 'b':20 }
 d1[100] = 123
 d2['c'] = 321

Здесь были показаны два способа создания словаря, а также продемонстрирован тот факт, что ключом может быть объект любого типа. Добавление нового объекта в словарь-хранилище не требует в динамических языках (которым является и Python) никаких предварительных действий: если под таким ключом ничто не хранилось — теперь будет, если же хранилось — оно будет перезаписано. (Подробнее см. Python Tutorial, Dictionaries)

На Python весьма просто можно написать свой класс, который будет вести себя подобно словарю. Для этого необходимо лишь определить в своем классе соответствующие методы (см. Python Reference Manual, Emulating container types). Для расширения базовых свойств типа словарь, необходимо наследовать свой класс от соответствующего типа словаря (types.DictType)

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home