В чем разница между хэш-картой и словарем ADT. И когда предпочитать один за другим. Для моего назначения программирования мой инструктор попросил использовать один из них, но я не вижу никакой разницы между ними. Предполагается, что программа будет работать с огромным нет. строк. Какие-либо предложения?Разница между HashMap и словарем ADT
ответ
С точки зрения Java, как класс HashMap
и класс Dictionary
являются реализации «Карты» абстрактного типа данных. Абстрактные типы данных не являются специфическими для какого-либо одного языка программирования, а Map ADT также можно назвать хэшем или словарем или ассоциативным массивом (другие - http://en.wikipedia.org/wiki/Associative_array). (Обратите внимание на то, что мы делаем различие между Dictionary
класса и словарь ADT.)
Dictionary
класс был помечен как устаревший, так что лучше не использовать его.
В Java HashMap реализует интерфейс карты, в то время как в словаре нет. Это делает словарь устаревшим (в соответствии с документами API). То есть, они оба выполняют аналогичную функцию, поэтому вы правы, что они кажутся очень похожими ... HashMap - это тип словаря.
Рекомендуется использовать HashMap.
Это переполнение стека пост делает хорошую работу, объясняя основные отличия:
Обратите внимание, что Hashtable это просто реализация словаря ADT. Также обратите внимание, что Java рассматривает словарь "obsolete".
Тот факт, что синхронизация Hashtable не покупает вас для большинства целей. Используйте HashMap.
Спасибо! Это полезно! – trillions 2012-08-11 07:25:47
Карта представляет собой интерфейс для ADT в Java, тот же общих языке независимых структур данных для поддержания < ключа, значение > пара, и вводится в Java 1.2.
Словарь (а не реализация карты) является абстрактным классом с той же целью, который был введен ранее в JDK 1.0. Единственным его подклассом является Hashtable, который сам реализует Map. Тем не менее, теперь класс словаря устарел, и вы можете его забыть.
Существуют различия между членами функции Map и Dictionary, однако вы можете найти разницу между HashMap и Hashtable более полезными. here вы можете найти различия.
- 1. Разница между объектом и словарем?
- 2. Разница между ADT и классами?
- 3. swift: разница между массивом 2d и словарем
- 4. разница между хэшем Perl и словарем python
- 5. Разница между словарем и orderdict в python
- 6. разница между IEnumerable и словарем C#
- 7. F #: Разница между Словарем, Hashtable и Map
- 8. В чем разница между словарем и массивом?
- 9. Разница между SparseArray и Hashmap?
- 10. Разница между HashSet и HashMap?
- 11. Scala: разница между стилем и ADT?
- 12. разница между картой и HashMap в Java ~~
- 13. Разница между hashmap 1.4 и 1.6
- 14. В чем разница между HashMap и TreeMap?
- 15. Разница между заменой и поставкой для HashMap
- 16. разница между Hashtable и Collections.synchronizedMap (HashMap)
- 17. Разница между HashMap и Map в Java ..?
- 18. В чем разница между HashMap и HashMultimap
- 19. В чем разница между Hashmap и одновременным HashMap?
- 20. В чем разница между словарем схемы и данных?
- 21. В чем разница между словарем и хеш-таблицей?
- 22. В чем разница между хеш-таблицей и словарем в C
- 23. В чем разница между коллекцией ассоциаций и словарем в Smalltalk?
- 24. В чем разница между словарем и картой в Javascript 6?
- 25. Разница между словарями и словарем <Tkey,Tvalue>
- 26. Разница между словарем и Hashtable с точки зрения безопасности потоков
- 27. В чем разница между ADT и Android SDK?
- 28. Какая разница в использовании между структурой и списком ADT?
- 29. В чем разница между хэш-картой, хэш-множеством, хеш-словарем?
- 30. В чем разница между сегментами ConcurrentHashMap и ведрами HashMap теоретически?
Обратите внимание, что существует разница между абстрактным типом данных «Карта» и интерфейсом Java «Карта». Как упоминалось в других ответах, унаследованный класс `Dictionary` не выполняет _not_ реализацию интерфейса Java` Map`, но класс `HashMap` делает. – 2012-11-26 22:11:43