L'itération HashMap sur ordonnance qu'il a été mis en
J'ai mis une table de hachage sur certain ordre, mais il est itéré sur une étrange commande!
Veuillez considérer le code ci-dessous:
HashMap<String, String> map = new HashMap<String, String>();
map.put("ID", "1");
map.put("Name", "the name");
map.put("Sort", "the sort");
map.put("Type", "the type");
...
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
et le résultat:
Name: the name
Sort: the sort
Type: the type
ID: 1
J'ai besoin de le parcourir dans l'ordre que j'ai mis les entrées.
Toute aide sera appréciée.
- Essayez d'utiliser LinkedHashMap stackoverflow.com/questions/683518/...
- Il est répété dans un ordre non défini. Voir la Javadoc. Si vous voulez de la commande, l'utilisation d'une Carte de mise en œuvre qui le fournit.
Vous devez vous connecter pour publier un commentaire.
L'ordre dépend du résultat de la
hashCode()
fonction les touches sont de l'insertion qui, sauf si vous avez quelque chose d'étrange, va être la plupart du temps aléatoire (mais compatible). Ce que vous cherchez est un triées carte comme un LinkedHashMapDécouvrez un peu plus sur la façon dont les tables de hashage travail ici si vous êtes intéressé par les détails.
C'est comment
HashMap
fonctionne en interne. RemplacerHashMap
avecLinkedHashMap
qui, de plus, se souvient de l'ordre d'insertion: