Soy un usuario de Python desde hace mucho tiempo y me gusta mucho la forma en que se usan los diccionarios. Son muy intuitivos y fáciles de usar. ¿Hay un buen Java equivalente a los diccionarios de python? He oído hablar de personas que usan hashmaps y hashtables. ¿Podría alguien explicar las similitudes y diferencias de usar hashtables y hashmaps versus los diccionarios de python?Java Equivalente a los diccionarios de Python
Respuesta
La clase dict
de Python es una implementación de lo que la documentación de Python informalmente llama "mapping types". Internamente, dict
se implementa usando una tabla hash.
La clase HashMap
de Java es una implementación de la interfaz Map
. Internamente, HashMap
se implementa usando una tabla hash.
Existen algunas diferencias menores en la sintaxis, y creo que las implementaciones se ajustan de forma ligeramente diferente, pero en general son completamente intercambiables.
Por lo que yo sé (en realidad no uso java) los diccionarios son solo otro nombre para un hashmap/hashtable.
Código de agarre de http://www.fluffycat.com/Java/HashMaps/ parece que se utilizan de una manera muy similar, con un poco de placa de caldera adicional de java.
Java tiene incluso una interfaz de diccionario que es implementada por Hashtable. HashMap es generalmente preferido, sin embargo. –
@Michael Myers: el diccionario está en desuso, Oracle recomienda utilizar Map en su lugar http://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html –
Una diferencia entre los dos es que dict
tiene requisitos más estrictos sobre qué tipos de datos pueden actuar como clave. Java permitirá que cualquier objeto funcione como clave, aunque debe asegurarse de que el método hashCode()
del objeto devuelva un valor único que refleje su estado interno. Python requiere que las claves se ajusten a su definición de hashable, que especifica que el código hash del objeto nunca debe cambiar a lo largo de su vida útil.
Esto es cierto, pero en realidad no se aplica por ninguno de los dos idiomas. Obviamente, en un método Java 'hashCode()' o en un método Python '__hash __()', debe intentar devolver un valor único que refleje el estado interno.En Java o Python, si tiene un objeto mutable, probablemente no debería ser una clave hashtable, por lo que tiene sentido arrojar una excepción de los métodos 'hashCode()' o '__hash __()'. –
La idea de diccionario y mapa es similar. Ambos contienen elementos como
key1:value1, key2:value2 ... and so on
En Java, Map
se implementa diferentes maneras como HashMap
o TreeMap
etc. put(), get()
operaciones son similares
Map map = new HashMap();
// Put elements to the map
map.put("Ram", new Double(3434.34));
map.put("Krishna", new Double(123.22));
map.put("Hary", new Double(1378.00));
//to get elements
map.get("Krishna"); # =123.22
map.get("Hary"); # = 1378.00
Consulte la documentación de HashMap en java8 https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
- 1. C# a Java - ¿Diccionarios?
- 2. Python: acceso a los valores anidados en los diccionarios
- 3. ¿Hay un Python equivalente a los símbolos de Ruby?
- 4. ¿Comprende la lista Python para diccionarios en los diccionarios?
- 5. Alternativas de memoria eficiente a los diccionarios de Python
- 6. equivalente de Java a bisección en python
- 7. C++ equivalente a los docámenes de Python?
- 8. C# equivalente a los mkdirs de Java()
- 9. python diccionario de diccionarios
- 10. "Agregar" Diccionarios en Python?
- 11. Invertir diccionarios en Python
- 12. fusionando varios diccionarios python
- 13. Java Mahout equivalente en Python
- 14. Python "Evento" equivalente en Java?
- 15. Python equivalente a find2perl
- 16. Java equivalente para str.strip de Python()
- 17. Equivalente a Maven para python
- 18. equivalente en Java de struct.pack de Python?
- 19. ¿El equivalente TreeSet de Java en Python?
- 20. Python equivalente de getClass de Java() getFields()
- 21. Divida los valores de dos diccionarios en python
- 22. Python Equivalente a phpinfo()
- 23. ¿Iterar sobre los diccionarios VBA?
- 24. Python equivalente a JNLP Web Start de Java?
- 25. ¿Equivalente Java al getattr de python?
- 26. Objetos como claves en los diccionarios de Python
- 27. equivalente de Java de Python repr()?
- 28. Java equivalente a app.config?
- 29. ¿Qué tan caros son los diccionarios de Python para manejar?
- 30. equivalente Java del formato de Python()
No se proporcionó ningún ejemplo :( –
@kami: ¿Qué tipo de ejemplo quieres? –
Cualquier ejemplo que ilustre un java equivalente del diccionario de python en acción. Una respuesta útil incluye algún ejemplo porque la mayoría de la gente viene aquí para ver ejemplos y usarlos en su código. –