Подтвердить что ты не робот

Разница между HashMap и словарем ADT

В чем разница между хэш-картой и словарем ADT. И когда предпочитать один за другим. Для моего назначения программирования мой инструктор попросил использовать один из них, но я не вижу никакой разницы между ними. Предполагается, что программа будет работать с огромным нет. строк. Любые предложения?

4b9b3361

Ответ 1

В терминах Java оба класса HashMap и класс Dictionary являются реализациями абстрактного типа данных "Карта". Абстрактные типы данных не относятся ни к одному языку программирования, а ADT карты также могут быть известны как Хэш или Словарь или Ассоциативный массив (другие в http://en.wikipedia.org/wiki/Associative_array). (Обратите внимание, что мы делаем различие между классом Dictionary и словарем ADT.)

Класс Dictionary отмечен как устаревший, поэтому лучше не использовать его.

Ответ 2

Это сообщение делает хорошую работу, объясняя основные отличия:

Java hashmap vs hashtable

Обратите внимание, что Hashtable - это просто реализация словаря ADT. Также обратите внимание, что Java рассматривает словарь "устаревший" .

Тот факт, что Hashtable синхронизирован, не покупает вас для большинства целей. Используйте HashMap.

Ответ 3

В Java HashMap реализует интерфейс Map, в то время как в словаре нет. Это делает словарь устаревшим (в соответствии с документами API). То есть, они оба выполняют аналогичную функцию, поэтому вы правы, что они кажутся очень похожими... HashMap - это тип словаря.

Вам рекомендуется использовать HashMap, хотя.

Ответ 4

Карта - это интерфейс для ADT в Java, одна и та же общая независимая от языка структура данных для поддержки < key, value > пар, и введен в Java 1.2.

Словарь (а не реализация Map) - это абстрактный класс с той же целью, который был введен ранее в JDK 1.0. Единственным его подклассом является Hashtable, который сам реализует Map. Тем не менее, теперь класс словаря устарел, и вы можете его забыть.

Существуют различия между членами функции Map и Dictionary, однако вы можете найти разницу между HashMap и Hashtable более полезными. здесь вы можете найти различия.