¿Cuál es la diferencia entre un Hash Map y un diccionario ADT. Y cuando preferir uno sobre otro. Para mi asignación de programación, mi instructor me ha pedido que use uno de ellos, pero no veo ninguna diferencia entre ambos. Se supone que el programa funciona con un gran no. de cuerdas. ¿Alguna sugerencia?Diferencia entre un HashMap y un diccionario ADT
Respuesta
En términos de Java, tanto en la clase y la clase HashMap
Dictionary
son implementaciones del "mapa" de tipo abstracto de datos. Los tipos de datos abstractos no son específicos de ningún lenguaje de programación, y el ADT del mapa también se puede conocer como Hash, o un diccionario, o un conjunto asociativo (otros al http://en.wikipedia.org/wiki/Associative_array). (Nótese que estamos haciendo una distinción entre la clase Dictionary
y el Diccionario de ADT.)
El Dictionary
clase ha sido marcada como obsoleta, por lo que es mejor no usarlo.
En Java, el HashMap implementa la interfaz de Mapa mientras que el Diccionario no. Eso hace que el diccionario sea obsoleto (de acuerdo con los documentos API). Es decir, ambos realizan una función similar, así que tienes razón en que parecen muy similares ... un HashMap es un tipo de diccionario.
Sin embargo, se recomienda utilizar el HashMap.
Este desbordamiento de pila de post hace un buen trabajo explicando las diferencias clave:
Tenga en cuenta que Hashtable es simplemente una aplicación del Diccionario de ADT. También tenga en cuenta que Java considera Dictionary "obsolete".
El hecho de que Hashtable esté sincronizado no le compra mucho para la mayoría de los usos. Use HashMap.
¡Gracias! ¡Es útil! – trillions
Mapa es una interfaz para un TAD en Java, la misma estructura de datos independiente del lenguaje general para mantener < clave, valor > pares, y se introduce en Java 1.2.
Diccionario (no una implementación de Mapa) es una clase de Resumen para el mismo propósito presentado anteriormente en JDK 1.0. La única subclase que tiene es Hashtable, que a su vez está implementando Map. Sin embargo, la clase de diccionario ahora está obsoleta y es posible que la olvide.
Existen diferencias entre los miembros de la función de Mapa y Diccionario, sin embargo, es posible que la diferencia entre HashMap y Hashtable sea más útil. here puede encontrar las diferencias.
- 1. ¿Diferencia entre un objeto y un diccionario?
- 2. Diferencia entre HashSet y HashMap?
- 3. ¿Cuál es la diferencia entre un HashMap y un TreeMap?
- 4. Diferencia entre Hashtable y Collections.synchronizedMap (HashMap)
- 5. Diferencia entre diccionario y Hashtable
- 6. Diferencia entre HashMap y Map en Java ...?
- 7. ¿Cuál es la diferencia entre un diccionario y una matriz?
- 8. ¿Es el diccionario ActionScript 3 un hashmap?
- 9. Diferencia entre Memcache y Python diccionario
- 10. Diferencia entre mapa y dict
- 11. cuál es la diferencia entre mapa y hashmap en STL
- 12. ConcurrentModificationException y un HashMap
- 13. ¿Diferencia entre un objeto y un hash?
- 14. ¿Diferencia entre un script y un programa?
- 15. Diferencia entre un subsistema y un componente
- 16. ¿Diferencia entre una "coroutine" y un "hilo"?
- 17. Diferencia entre una clase y un módulo
- 18. Diferencia entre un +++++ b y A ++ + ++ b
- 19. Python - intersección entre una lista y claves de un diccionario
- 20. ¿Hay alguna diferencia entre un control y un widget?
- 21. ¿Hay alguna diferencia entre un GUID y un UUID?
- 22. Diferencia entre un complemento jQuery y un widget jQuery?
- 23. Diferencia entre un archivo empaquetado y un archivo descompuesto
- 24. Diferencia entre un ImageView y un ImageButton clicables
- 25. ¿Cuál es la diferencia entre un predicado y un funcionador?
- 26. ¿Cómo saber la diferencia entre un iterador y un iterable?
- 27. ¿Cuál es la diferencia entre un método y un selector?
- 28. Cuál es la diferencia entre un subproceso y un controlador
- 29. Diferencia entre un intermediario de mensajes y un ESB
- 30. ¿Cuál es la diferencia entre un controlador y un servicio?
Tenga en cuenta que existe una diferencia entre el tipo de datos abstractos "Mapa" y la interfaz Java 'Map'. Como se menciona en otras respuestas, la clase legacy 'Dictionary' no implementa la interfaz Java' Map', pero sí la clase 'HashMap'. –