Maison >Java >javaDidacticiel >L'ordre de récupération de valeur HashMap de Java garantit-il ?
Ordre des valeurs récupérées dans un HashMap
En Java, la classe HashMap fournit une structure de données efficace pour stocker les paires clé-valeur. Cependant, l'ordre dans lequel les valeurs sont récupérées à partir d'un HashMap a été un sujet de débat.
Ordre d'insertion
Dans l'exemple de code fourni, après avoir inséré une série de paires clé-valeur dans un HashMap, les valeurs sont récupérées et imprimées. La sortie montre que les valeurs sont imprimées dans le même ordre dans lequel elles ont été insérées.
HashMap<Integer, String> hashmap = new HashMap<>(); hashmap.put(1, "apple");
Cas général
Selon la documentation Java, la classe HashMap "ne donne aucune garantie quant à l'ordre de la carte." Cela signifie que l'ordre des éléments dans une HashMap peut changer au fil du temps, même sans aucune modification de la carte. La raison en est que HashMap utilise une table de hachage en interne, conçue pour fournir une récupération et une insertion efficaces, mais ne maintient aucun ordre spécifique.
Ordre cohérent
Si vous avez besoin d'un ordre cohérent des valeurs dans une carte, vous pouvez utiliser la classe LinkedHashMap. Contrairement à HashMap, LinkedHashMap conserve l'ordre des éléments en fonction de leur insertion ou de leur accès. Cependant, notez que LinkedHashMap conserve l'ordre des clés, pas les valeurs.
Pour utiliser LinkedHashMap, vous pouvez remplacer le HashMap par LinkedHashMap dans votre code.
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put(1, "apple");
Conclusion
Bien que HashMap permette une récupération et une insertion efficaces, il ne garantit aucun ordre spécifique des valeurs. Si un classement cohérent est requis, envisagez d’utiliser la classe LinkedHashMap. Cependant, il est important de se rappeler que LinkedHashMap conserve l'ordre des clés, pas les valeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!