539 votes

Comment préserver l'insertion de l'ordre dans la table de hachage?

Je suis la création de deux hashmap<String, String>. Données ont été insérées dans un ordre spécifique, et j'ai besoin de préserver l'insertion de l'ordre.

Quand j'ai effectuer une itération sur un hasmap, le résultat est (souvent les mêmes) d'un donneur d'ordre aléatoire key->map valeurs.

Je travaille avec hasmap pour créer de zone de liste déroulante dans un ordre bien précis, mais j'ai besoin d'avoir une correspondance à partir de la sélection de la valeur et une valeur dépendante.

Mais une itération sur un Haspmap pour remplir la zone de liste modifiable, les résultats dans un "mal orderded" combo.

1169voto

NPE Points 169956

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

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

72voto

nicholas.hauschild Points 21796

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

Cette classe ne donne aucune garantie quant à l'ordre de la carte; en particulier, il ne garantit pas que l'ordre demeure constante au cours du temps.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X