Каково различие между картой и словарем?

Я знаю, что карта является структурой данных, которая отображает ключи к значениям. Разве словарь не является тем же? Каково различие между картой и dictionary1?


1. Я не прошу то, как они определяются на языке X или Y (который, кажется, то, относительно чего обычно люди спрашивают здесь ТАК), я хочу знать то, что является их различием в теории.

168
задан nbro 13 March 2018 в 14:11
поделиться

6 ответов

Два термина для одного и того же:

  • «Карта» используется Java, C ++
  • «Словарь» используется .Net, Python
  • «Ассоциативный массив» используется в PHP

«Карта» - правильный математический термин, но его избегают, поскольку он имеет отдельное значение в функциональном программировании .

В некоторых языках используются и другие термины («Объект» в Javascript, «Хэш» в Ruby, «Таблица» в Lua) , но все они имеют разные значения в программировании, поэтому я бы избегал их.

См. здесь для получения дополнительной информации.

236
ответ дан 23 November 2019 в 20:56
поделиться

Один - более старый термин для другого. Обычно термин «словарь» использовался до того, как стал применяться математический термин «карта». Кроме того, словари, как правило, имеют ключевой тип строки, но это не всегда верно на 100%.

20
ответ дан 23 November 2019 в 20:56
поделиться

Да, они такие же, вы можете добавить в смесь «Ассоциативный массив».

с использованием Hashtable или Hash ofter относится к реализации.

1
ответ дан 23 November 2019 в 20:56
поделиться

Обычно я предполагаю, что карта поддерживается хэш-таблицей; это означает неупорядоченное хранилище. Словари означают упорядоченное хранилище.

Существует словарь на основе дерева, называемый Trie.

На языке Лисп он может выглядеть так:

(a (n (d t)) n d )

В нем заключены слова:

  • a
  • and
  • ant
  • an
  • ad

Обход от вершины к листу дает слово.

3
ответ дан 23 November 2019 в 20:56
поделиться

Другие достаточно распространенные термины для обозначения этого понятия: ассоциативный массив и хэш.

1
ответ дан 23 November 2019 в 20:56
поделиться

Это два разных термина для одной и той же концепции.
Hashtable и HashMap также относятся к одному и тому же понятию.

-2
ответ дан 23 November 2019 в 20:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: