Maison >Java >JavaBase >Le tri des clés de la carte Java est-il effectué ?

Le tri des clés de la carte Java est-il effectué ?

angryTom
angryTomoriginal
2019-11-18 11:46:462076parcourir

Le tri des clés de la carte Java est-il effectué ?

La clé de la carte Java est-elle triée ?

Java définit une interface java.util pour le mappage dans les données structure.Map, il implémente quatre classes, à savoir : HashMap, HashTable, LinkedHashMapTreeMap, Map ne permet pas la duplication de clé, mais permet la duplication de valeur

1.HashMap :

La carte la plus couramment utilisée stocke les données en fonction de la valeur du hashcode de la clé, et sa valeur peut être obtenue directement en fonction de la clé (car la valeur du hashcode de la même clé est la même, la valeur est stockée là où l'adresse est la valeur de hashcode, afin qu'elle puisse être obtenue directement en fonction de la valeur de la clé), a une vitesse d'accès très rapide lors du parcours, l'ordre d'obtention des données est complètement aléatoire HashMap ne permet que la clé d'un enregistrement. être nul au maximum et permettre à la valeur de plusieurs enregistrements d'être nulle. HashMap ne prend pas en charge la synchronisation des threads, c'est-à-dire que plusieurs threads peuvent écrire HashMap en même temps à tout moment, ce qui peut entraîner une incohérence des données. vous pouvez utiliser la méthode synchronziedMap pour synchroniser HashMap ou utiliser concurrentHashMap

2 .HashTable :

Semblable à HashMap, la différence est qu'il n'autorise pas les clés enregistrées ou les valeurs doivent être vides et prend en charge la synchronisation des threads, c'est-à-dire qu'un seul thread peut écrire dans la HashTable à tout moment, ce qui ralentit la HashTable lors de l'écriture

3.LinkedHashMap :

est une sous-classe de HahsMap, mais elle maintient l'ordre d'insertion des enregistrements , la première chose obtenue lors du parcours doit être insérée en premier. Vous pouvez également prendre des paramètres lors de la construction et trier en fonction. au nombre d'applications. Le parcours sera plus lent que HahsMap, mais il y a une exception. Lorsque la capacité de HashMap est grande et que les données réelles sont petites, le parcours sera plus lent que LinkedHashMap (car c'est une chaîne), car. la vitesse de parcours de HashMap est liée à sa capacité, et la vitesse de parcours de LinkedHashMap est uniquement liée à la quantité de données

4.TreeMap :

Implémente le sortMap interface, peut trier les enregistrements enregistrés selon les clés (ordre croissant par défaut), vous pouvez également spécifier un comparateur de tri, et les données obtenues lors du parcours sont triées

Quel type de La carte doit être utilisée dans quelles circonstances :

Insérer, supprimer et localiser des éléments dans la carte : HashMap

Pour parcourir dans un ordre personnalisé ou un ordre naturel : TreeMap

Nécessite que l'ordre d'entrée et l'ordre de sortie soient les mêmes : LinkedHashMap

site Web chinois php, un grand nombre de tutoriels d'introduction Java gratuits, bienvenue pour apprendre en ligne !

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!

Déclaration:
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