Разница между HashMap и словарем ADT - PullRequest
60 голосов
/ 06 ноября 2008

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

Ответы [ 4 ]

60 голосов
/ 18 ноября 2008

С точки зрения Java, и класс HashMap, и класс Dictionary являются реализациями абстрактного типа данных "Карта". Абстрактные типы данных не являются специфичными для какого-либо одного языка программирования, и Map ADT также может называться Hash, Dictionary или Associative Array (другие в http://en.wikipedia.org/wiki/Associative_array). (обратите внимание, что мы делаем различие Dictionary класс и словарь ADT.)

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

18 голосов
/ 06 ноября 2008

Этот пост переполнения стека хорошо объясняет основные различия:

Java hashmap vs hashtable

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

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

8 голосов
/ 06 ноября 2008

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

Рекомендуется использовать HashMap.

0 голосов
/ 07 ноября 2016

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...