Je suis un utilisateur de longue date de Python et j'aime vraiment la façon dont les dictionnaires sont utilisés. Ils sont très intuitifs et faciles à utiliser. Existe-t-il un bon Java = équivalent aux dictionnaires de python? J'ai entendu parler de personnes utilisant des hashtaps et des tables de hachage. Quelqu'un pourrait-il expliquer les similitudes et les différences d'utilisation des tables de hachage et des hashmap par rapport aux dictionnaires de python?
La classe dict
de Python est une implémentation de ce que la documentation Python appelle de manière informelle " types de mappage ". En interne, dict
est implémentée en utilisant une table de hachage.
La classe HashMap
de Java est une implémentation de l'interface Map
. En interne, HashMap
est implémenté à l'aide d'une table de hachage.
Il y a quelques différences mineures dans la syntaxe, et je pense que les implémentations sont réglées légèrement différemment, mais dans l'ensemble, elles sont complètement interchangeables.
L'idée du dictionnaire et de la carte est similaire. Les deux contiennent des éléments comme
key1:value1, key2:value2 ... and so on
En Java, Map
est implémenté de différentes manières comme HashMap
, ou TreeMap
etc. put(), get()
les opérations sont similaires
import Java.util.HashMap;
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
Voir la documentation de HashMap en Java8 https://docs.Oracle.com/javase/8/docs/api/Java/util/HashMap.html
Une différence entre les deux est que dict
a des exigences plus strictes quant aux types de données pouvant agir comme clé. Java permettra à tout objet de fonctionner comme une clé - bien que vous deviez vous assurer que la méthode hashCode()
de l'objet renvoie une valeur unique qui reflète son état interne. = Python nécessite des clés pour correspondre à sa définition de hashable , qui spécifie que le code de hachage de l'objet ne doit jamais changer au cours de sa durée de vie.
Pour autant que je sache (je n'utilise pas réellement Java), les dictionnaires ne sont qu'un autre nom pour une table de hachage/table de hachage.
Récupérer le code de http://www.fluffycat.com/Java/HashMaps/ il semble qu'ils soient utilisés de manière très similaire, avec un peu d'extra Java plaque de chaudière.