hashmap jeu de clés triées automatiquement
HashMap<String, String[]> content = new HashMap<String, String[]>();
content.put("Help", new String[]{"About"});
content.put("View", new String[]{"Grid"});
content.put("File", new String[]{"Import", "Export"});
for(String key : content.keySet()){
System.out.println(key);
}
Le code ci-dessus journaux:
View
Help
File
Mais pourquoi est-ce triées?
- Exécutez deux fois, trois fois, plus.. Vous verrez des résultats différents.
- Par chance. Ajouter plus de touches et vous verrez qu'il n'est pas triée.
- Redémarré 10 fois, mais toujours le même ordre.
- Même si ses triés à chaque fois, ce n'est pas garanti d'être triés de sorte que vous ne devriez pas compter sur elle. Il y a probablement beaucoup de comportements qui venez d'arriver à l'être, mais si ils ne font pas partie de la documentation/API/contrat, alors vous ne devriez pas compter sur eux.
- Il y a juste 6 moyens de commande 3 articles différents. Deux de ceux-ci sont triés. 1 chance sur 3 n'est guère rare.
- Vous pouvez exécuter de très,de très nombreuses fois votre code et de la commande sera le même, car il dépend de deux facteurs - CLÉS du hashCode et la durée de la sauvegarde de la matrice. Chaque fois que vous cause la sauvegarde de tableau de HashMap de grandir, de PERDRE la commande. Veuillez couvrir mon tutoriel vie Interne de HashMap
- Votre lien est cassé, mais j'ai été capable de le trouver dans les archives du web. Voir vie Interne de HashMap. C'était génial, merci pour ça!
Vous devez vous connecter pour publier un commentaire.
HashMap ne fait absolument aucune garantie sur l'itération de l'ordre. Il peut être (et sera) même changer complètement lorsque de nouveaux éléments sont ajoutés.
LinkedHashMap va se répéter dans l'ordre dans lequel les entrées ont été mis dans la carte
Source
L'ordre dans lequel vous voir les entrées de la
HashMap
dépend de la valeur de hachage codes des touches et de l'ordre des entrées dans le seau, je crois, et il est dépendant de l'implémentation, mais ne comptez pas surHashMap
pour commander à tous. Alors queLinkedHashMap
etTreeMap
faire de garantir un certain ordre.