web-dev-qa-db-fra.com

Comment préserver l'ordre d'insertion dans HashMap?

J'utilise un HashMap. Lorsque j'itère sur la carte, les données sont renvoyées dans un ordre aléatoire (souvent identique). Mais les données ont été insérées dans un ordre spécifique et je dois conserver l'ordre d'insertion. Comment puis-je faire ceci?

447
realtebo

LinkedHashMap est précisément ce que vous recherchez.

C'est exactement comme HashMap, sauf que lorsque vous le parcourez, il présente les éléments dans l'ordre d'insertion.

976
NPE

HashMap n'est pas ordonné à la deuxième ligne de la documentation:

Cette classe ne donne aucune garantie quant à l'ordre de la carte; en particulier, cela ne garantit pas que l'ordre restera constant dans le temps.

Peut-être que vous pouvez faire comme l'aix suggère et utiliser un LinkedHashMap, ou une autre collection ordonnée. Ce lien peut vous aider à trouver la collection la plus appropriée à utiliser.

64