Разница между хэш-картой и словарем ADT
в чем разница между хэш-картой и словарем ADT. И когда предпочесть одно другому. Для моего задания по программированию мой инструктор попросил использовать один из них, но я не вижу никакой разницы между ними. Программа должна работать с огромным нет. из ниток. Есть предложения?
4 ответов:
С точки зрения Java, как класс
HashMapи классDictionaryare реализации абстрактного типа данных "карта". Абстрактные типы данных не являются специфичными для какого-либо одного языка программирования, и карта ADT также может быть известна как хэш, или словарь, или ассоциативный массив (другие в http://en.wikipedia.org/wiki/Associative_array). (обратите внимание, что мы делаем различие междуDictionaryкласс и словарь ADT.)The
Dictionaryкласс был отмечен как устаревший, поэтому лучше не использовать его.
этот столб переполнения стека делает хорошую работу объясняя ключевые разницы:
обратите внимание, что Hashtable-это просто реализация словаря ADT. Также обратите внимание, что Java рассматривает словарь "устаревшие".
тот факт, что Hashtable синхронизируется, не покупает вас много для большинства применений. Использовать HashMap.
в Java HashMap реализует интерфейс карты, а словарь - нет. Это делает словарь устаревшим (согласно документам API). То есть, они оба выполняют аналогичную функцию, поэтому вы правы, что они кажутся очень похожими...HashMap - это тип словаря.
вам рекомендуется использовать HashMap, хотя.
Map-это интерфейс для ADT в Java,та же самая общая независимая от языка структура данных для поддержания пар , и вводится в Java 1.2.
словарь (не реализация Map) является абстрактным классом для той же цели, введенной ранее в JDK 1.0. Единственный подкласс это хеш-таблица, которая сама по себе является реализация карте. Тем не менее, словарь класс устарел сейчас, и вы можете забыть об этом.
есть различия между функциональными элементами Map и Dictionary, однако вы можете найти разницу между HashMap и Hashtable более полезной. здесь вы можете найти различия.
Comments