J'ai testé HashMap récemment et je suis tombé sur un problème intéressant. J'ai un tableau, a3, que j'ai défini des valeurs arbitraires. Je prends alors ce tableau et le place dans une carte d'instance HashMap.Utilisation de HashMap put()
Mon problème est que lorsque j'attribue une instance Object à la valeur de put ("a3", a3), je n'arrive pas à imprimer l'adresse de l'instance.
Par exemple:
HashMap<Object, Object> map = new HashMap<Object, Object>();
int[] a3 = new int[] {1, 2, 3, 4};
map.put("a3", a3);
Quand j'appelle System.out.println (map.put ("a3", a3), je me donne une adresse en mémoire
Toutefois, si. Je crée une instance d'objet, puis essayez d'imprimer ce cas je reçois nulle.
Object copy = map.put("a3", a3);
System.out.println(copy);
l'exécution du segment ci-dessus me donne une valeur nulle.
Une raison pour laquelle ces deux déclarations, qui semblent identiques, me donnent des résultats différents?
Je comprends qu'aucune valeur est dans le HashMap, mais ma question est pourquoi il n'y a pas de valeur dans la HashMap. La méthode put() ne place-t-elle pas de valeur dans HashMap? Donc, si l'instance Object est assignée à la valeur qui est mise dans HashMap, System.out.println() ne devrait-elle pas imprimer l'adresse de ce qui est dans la HashMap? – Delfino
C'est ce que je dis. Il y a une valeur dans la table de hachage mais put() ne retourne pas la hashmap. Ne pas faire 'System.out.println (copier)', faire 'System.out.println (map.get (" a3 "))' et vous le verrez là – JamesENL
Est-ce que mon explication a du sens? – JamesENL