HashMap et IdentityHashMap
Bonjour,
Etant nouveau ici, je ne sais pas si je post au bon endroit mais au pire, je me ferais taper sur les doigts ;)
J'ai créé une fonction qui permet de décoder et découper une string base64 vers de l'hexa.
Je récupère la structure du message dans un fichier XML.
Je range les infos que j'obtiens au fur et à mesure dans une IdentityHashMap:
Code:
1 2 3 4 5 6
| for(...)
{
String key = ...;
String value = ...;
maMap.put(key,value);
} |
Lorsque j'affiche cette map, elle contient les 7 éléments que je désire.
Là où ça coince, c'est que la méthode map.get("maClef") me renvoie "null" et map.containsKey("maClef") me renvoie "FAUX".
Là où ça devient fort, c'est que si dans la méthode de décodage/découpage je remplace par ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| for(...)
{
String key = ...;
String value = ...;
if(key.compareTo("maClef") == 0)
{
maMap.put("maClef", value);
}
else
{
maMap.put(key,value);
}
} |
A ce moment là, la méthode map.get("maClef") me renvoie la valeur associée et map.containsKey("maClef") me renvoie "VRAI".
La blague c'est que ce problème n’apparaît pas pour toutes les clefs.
Quelqu'un aurait une idée sur le soucis?
Je précise que j'ai fait les tests avec des méthodes comme compareTo(), matches() ou encore equals() pour vérifier que les chaines étaient bien identiques et que j'ai essayé de changer la longueur de la chaîne valeur des fois qu'elle soit trop grande.
Merci par avance