Cuál es la diferencia entre Dictionary y Hashtable. ¿Cómo puedo llegar a una conclusión sobre cuál usar? ¿Alguien puede ayudarme?Cuál es la diferencia principal entre Dictionary y Hashtable
Respuesta
La clase Dictionary difiere de la clase Hashtable en más de un sentido. Además de ser fuertemente-mecanografiado, El diccionario también emplea una estrategia colisión diferente resolución que la clase Hashtable, usando una técnica denominada como encadenamiento.
Usted puede leer este artículo: http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx#datastructures20_2_topic6
Es realmente útil.
es útil ... – Prateek
Hashtable es obsoleto. Siempre use Diccionario.
soy novato en tablas hash también, pero ...
diccionario es una tabla básica con dos columnas (clave y el valor, tanto tiene ciertos tipos) y un montón de filas que se agregan más tarde. Verá que en el diccionario le da una clave y el diccionario le da el valor que agregó anteriormente con la misma clave.
En las cosas hashtable son ligeramente diferentes. Ahora tiene una tabla con dos columnas (clave y valor, ambos son de tipo "objeto"). Las claves pueden no ser únicas. Ahora virtualy tiene dos tablas: una con dos columnas: Key y Hash, y otra con dos columnas Hash y Value. Hash es un valor entero obtenido de Key. Resulta que si bien Keys puede ser único, Hashes puede no serlo. [Sin embargo, no estoy seguro de esto ... así que dije "virtualy" ...]
Ahora ejemplo:
Hashtable ht = new Hashtable();
// Key of type Int32
ht[16] = "That is Int32";
// Key of type String
ht["Blah"] = 15;
// Key of type Boolean
ht[false] = "That is boolean";
// Key of type String
ht["Hohoho"] = false;
y posterior Se puede acceder a cualquier valor almacenado en la tabla hash simplemente utilizando las teclas (si no hay tan clave que devuelve un valor nulo):
Console.WriteLine("ht[{0}] = {1};", 16, ht[16] ?? "null");
Console.WriteLine("ht[{0}] = {1};", "Test", ht["Test"] ?? "null"); // doesnt exist eh...
Console.WriteLine("ht[{0}] = {1};", false, ht[false] ?? "null");
Console.WriteLine("ht[{0}] = {1};", "Hohoho", ht["Hohoho"] ?? "null");
Para sumarize:
diccionario es la siguiente:
[ Key ][ Value ]
A 1.5
B 1.6
C -8
....
Y probabily tabla hash es la siguiente:
[ Key ][ Hash ]
A 1
B 2
C -99
...
[ Hash ][ Value ]
-99 -8
1 1.6
2 1.5
....
espero que esto es algo muy útil. Cualquiera que pueda explicarlo mejor, no dude en hacerlo.
Gracias y buena suerte.
- 1. ¿Cuál es la diferencia entre Hashtable y Dictionary?
- 2. Diferencia entre diccionario y Hashtable
- 3. ¿Cuál es la diferencia entre KeyValuePair y Hashtable en .NET?
- 4. ¿Cuál es la diferencia entre una Hashtable y Properties?
- 5. ¿Cuál es la principal diferencia entre pepino y shoulda?
- 6. ¿Cuál es la principal diferencia entre ReadOnly y Enabled?
- 7. ¿Cuál es la principal diferencia entre signcode.exe y signtool.exe?
- 8. Hashtable vs Dictionary
- 9. ¿Cuál es la diferencia entre una clave principal e identidad?
- 10. Diferencia entre Hashtable y Collections.synchronizedMap (HashMap)
- 11. ¿Cuál es la principal diferencia entre Convert.ChangeType o Convert.ToInt32?
- 12. ¿Cuál es la diferencia entre EqualTo() y EquivalentTo() en NUnit?
- 13. Objective-C: ¿Cuál es la diferencia entre NULL, nil y @ ""?
- 14. ¿Cuál es la diferencia entre {0} y ""?
- 15. Cuál es la diferencia entre = y: =
- 16. ¿Cuál es la diferencia entre .ToString (+) y ""
- 17. Cuál es la diferencia entre $ (...) y `...`
- 18. ¿cuál es la diferencia entre:.! y: r !?
- 19. ¿Cuál es la diferencia entre ".equals" y "=="?
- 20. ¿Cuál es la diferencia entre dict() y {}?
- 21. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 22. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 23. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 24. ¿Cuál es la diferencia entre + = y = +?
- 25. ¿Cuál es la diferencia entre " " y ""?
- 26. Cuál es la diferencia entre $ y jQuery
- 27. ¿Cuál es la diferencia entre NSKeyValueObservingOptionNew y NSKeyValueObservingOptionOld?
- 28. Dictionary/HashTable Object in C++?
- 29. Objetivo-C: ¿Cuál es la diferencia entre forKey y forKeyPath?
- 30. ¿Cuál es la diferencia entre la clave principal y la restricción de clave única?
http://stackoverflow.com/questions/301371/why-dictionary-is-preferred-over-hashtable-in-c – Douglas
Consulte la pregunta similar a continuación: http://stackoverflow.com/questions/1089132/net- hashtable-vs-dictionary-can-the-dictionary-be-as-fast El enlace –