Я знаю, что карта является структурой данных, которая отображает ключи к значениям. Разве словарь не является тем же? Каково различие между картой и dictionary1?
1. Я не прошу то, как они определяются на языке X или Y (который, кажется, то, относительно чего обычно люди спрашивают здесь ТАК), я хочу знать то, что является их различием в теории.
Два термина для одного и того же:
«Карта» - правильный математический термин, но его избегают, поскольку он имеет отдельное значение в функциональном программировании .
В некоторых языках используются и другие термины («Объект» в Javascript, «Хэш» в Ruby, «Таблица» в Lua) , но все они имеют разные значения в программировании, поэтому я бы избегал их.
См. здесь для получения дополнительной информации.
Один - более старый термин для другого. Обычно термин «словарь» использовался до того, как стал применяться математический термин «карта». Кроме того, словари, как правило, имеют ключевой тип строки, но это не всегда верно на 100%.
Да, они такие же, вы можете добавить в смесь «Ассоциативный массив».
с использованием Hashtable
или Hash
ofter относится к реализации.
Обычно я предполагаю, что карта поддерживается хэш-таблицей; это означает неупорядоченное хранилище. Словари означают упорядоченное хранилище.
Существует словарь на основе дерева, называемый Trie.
На языке Лисп он может выглядеть так:
(a (n (d t)) n d )
В нем заключены слова:
Обход от вершины к листу дает слово.
Другие достаточно распространенные термины для обозначения этого понятия: ассоциативный массив и хэш.
Это два разных термина для одной и той же концепции.
Hashtable
и HashMap
также относятся к одному и тому же понятию.