L'ordre de récupération des cartes de hachage est-il préservé ?
En Java, les HashMaps utilisent un algorithme spécifique pour stocker et récupérer des données, laissant certains utilisateurs s'interroger sur l'ordre dans lequel les valeurs sont récupérées. En examinant un extrait de code, nous découvrirons la vérité derrière l'ordre de récupération HashMap.
import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap<Integer, String> hashmap = new HashMap<Integer, String>(); hashmap.put(1, "apple" ); hashmap.put(2, "lemon" ); hashmap.put(3, "orange" ); hashmap.put(4, "banana" ); hashmap.put(5, "litchi" ); hashmap.put(6, "mango" ); hashmap.put(7, "papaya" ); System.out.println(hashmap.size()); for (String key : hashmap.values()) { System.out.println(key); } } }
Sortie :
7 apple lemon orange banana litchi mango papaya
Comportement surprenant :
Étonnamment, les valeurs sont récupérées dans le même ordre dans lequel ils ont été insérés. Cependant, cette observation n'est pas toujours vraie.
La vérité :
Selon le HashMap Javadoc, rien ne garantit que l'ordre de récupération restera cohérent dans le temps. . Cela signifie que l'ordre de récupération peut changer arbitrairement.
Besoin d'un ordre cohérent ?
Si un ordre cohérent est crucial, on peut opter pour des structures de données alternatives telles que LinkedHashMap ou TreeMap .
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!