Maison > Java > javaDidacticiel > L'ordre de récupération HashMap de Java garantit-il ?

L'ordre de récupération HashMap de Java garantit-il ?

Susan Sarandon
Libérer: 2024-12-14 08:13:10
original
424 Les gens l'ont consulté

Does Java's HashMap Guarantee Retrieval Order?

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);
       }
   }
}
Copier après la connexion

Sortie :

7
apple
lemon
orange
banana
litchi
mango
papaya
Copier après la connexion

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 .

  • LinkedHashMap : maintient l'ordre d'insertion ou d'accès (LIFO)
  • TreeMap : maintient l'ordre de comparaison en fonction de la clé

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal