J'ai un HashMap
avec différentes clés et valeurs, comment puis-je obtenir une valeur?
J'ai une clé dans la carte appelée my_code
, elle doit contenir une chaîne, comment puis-je simplement l'obtenir sans avoir à parcourir la carte?
Jusqu'à présent, j'ai ...
HashMap newMap = new HashMap(paramMap);
String s = newMap.get("my_code").toString();
Je m'attends à voir un String
, tel que "ABC" ou "DEF" car c'est ce que j'ai mis là-dedans au départ, mais si je fais un, System.out.println()
j'obtiens quelque chose commejava.lang.string#F0454
Désolé, je ne connais pas trop les cartes comme vous pouvez probablement le deviner;)
la source
Si vous stockez des clés / valeurs sous forme de chaînes, cela fonctionnera:
La question est de savoir ce qui est renseigné dans le HashMap (clé et valeur)
la source
Si vous utilisez des génériques et définissez votre carte comme
puis récupérer la valeur comme
vous n'aurez pas besoin de transtyper le map.get () ou d'appeler la méthode toString pour obtenir la valeur String
la source
Votre question n'est pas du tout claire, j'en ai bien peur. Une clé n'a pas de "nom"; ce n'est pas "appelé" quoi que ce soit en ce qui concerne la carte - c'est juste une clé, et sera comparée à d'autres clés. Si vous avez beaucoup de types de clés différents, je vous suggère fortement de les mettre dans différentes cartes pour des raisons de santé mentale.
Si cela n'aide pas, veuillez clarifier la question - de préférence avec du code pour montrer ce que vous voulez dire.
la source
map.get(myCode)
la source
Un point important à noter ici est que si votre clé est un objet de classe définie par l'utilisateur en java, faites-en un point pour remplacer la méthode equals. Parce que la méthode HashMap.get (Object key) utilise la méthode equals pour faire correspondre la valeur de clé. Si vous ne remplacez pas la méthode equals, il essaiera de trouver la valeur simplement en fonction de la référence de la clé et non de la valeur réelle de la clé, auquel cas elle retournera toujours une valeur nulle.
la source
Supposons que vous ayez déclaré HashMap comme: -
Ensuite, la clé dans la carte est de type Type de données Caractère et valeur de type int.Maintenant, pour obtenir la valeur correspondant à la clé quel que soit le type de clé, le type de valeur, la syntaxe est: -
Donc, selon votre question, vous voulez obtenir une valeur de chaîne correspondant à une clé. Pour cela, déclarez simplement HashMap comme HashMap <"datatype of key", "datatype of value" hs = new HashMap <> (); L'utilisation de ceci rendra votre code plus propre et vous n'aurez pas non plus à convertir le résultat de hs.get ("mon_code") en chaîne car par défaut, il retourne la valeur de la chaîne si au moment de l'entrée on a conservé la valeur sous forme de chaîne.
la source
Voici un autre exemple d'utilisation des fonctions keySet (), get (), values () et entrySet () pour obtenir des clés et des valeurs dans une carte:
la source
Vous pouvez utiliser la méthode get (Object key) du HashMap. Sachez que dans de nombreux cas, votre classe de clé doit remplacer la méthode equals, pour être une classe utile pour une clé de mappage.
la source
La valeur mappée à la clé
4
estDD
la source