Comment conserver l'ordre d'insertion dans HashMap? [dupliquer]

cette question a déjà une réponse ici:

  • classe Java qui implémente Map et maintient l'ordre d'insertion? 8 réponses

j'utilise un HashMap . Quand j'itère sur la carte, les données sont retournées dans (souvent le même) ordre aléatoire. Mais les données ont été insérées dans un l'ordre, et j'ai besoin de préserver l'ordre d'insertion. Comment puis-je faire cela?

403
demandé sur Boann 2012-05-23 01:08:23

2 réponses

LinkedHashMap c'est exactement ce que vous cherchez.

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

887
répondu NPE 2012-05-22 21:15:07

HashMap n'est pas classé selon la deuxième ligne de la documentation:

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

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

56
répondu nicholas.hauschild 2013-09-20 12:08:09