Différence entre HashMap et TreeMap en Java
Contenu
HashMap et TreeMap sont les classes Map et implémentent toutes les deux l'interface Map. Map est un objet qui stocke des paires clé-valeur, où chaque clé est unique et où il peut y avoir des valeurs en double. La classe HashMap utilise la table de hachage en tant que structure de données. TreeMap utilise l'arbre rouge-noir comme structure de données. La principale différence entre HashMap et Treemap est que le HashMap ne préserve pas l'ordre d'insertion alors que, Treemap Est-ce que.
Commençons donc notre discussion sur les différences entre HashMap et TreeMap à l’aide du tableau de comparaison présenté ci-dessous.
- Tableau de comparaison
- Définition
- Différences Clés
- Conclusion
Tableau de comparaison
Base de comparaison | HashMap | TreeMap |
---|---|---|
De base | HashMap ne conserve pas l'ordre d'insertion. | TreeMap maintient l'ordre d'insertion. |
Structure de données | HashMap utilise Hash Table comme structure de données sous-jacente. | TreeMap utilise Red-Black Tree comme structure de données sous-jacente. |
Null Keys and Values | HashMap autorise la clé Null une fois et la valeur Null, à tout moment. | TreeMap n'autorise pas la clé Null, mais autorise les valeurs Null à tout moment. |
Étend et implémente | HashMap étend la classe AbstractMap et implémente l'interface Map. | TreeMap étend la classe AbstractMap et implémente les interfaces SortedMap et NavigableMap. |
Performance | HashMap fonctionne plus rapidement. | TreeMap par rapport à HashMap fonctionne plus lentement. |
Définition de HashMap
HashMap est une classe de carte. Il utilise le table de hachage, en tant que structure de données pour stocker la paire valeur / valeur des cartes. L’insertion de la paire clé-valeur se fait en utilisant le code de hachage du clés. Par conséquent, chaque clé de la carte doit être unique car elle sera utilisée pour récupérer les valeurs.
L'ordre d'insertion dans HashMap est ne pas préservé, ce qui signifie que l'objet hashmap ne renvoie pas les éléments dans l'ordre dans lequel ils ont été insérés. D'autre part, l'ordre dans lequel les éléments seront retournés n'est pas fixé.
le clé est autorisé à être NUL à la fois, mais le valeurs peut être NUL à n'importe quel moment. Le HashMap peut contenir le hétérogène objets pour les clés ainsi que des valeurs.
Il y a quatre constructeurs de HashMap:
HashMap () HashMap (Carte m) HashMap (int capacité), HashMap (int capacité, float fillRatio)
le première constructeur crée l'objet vide de HashMap. le seconde constructeur initialise HashMap à l’aide des éléments de Map m. le troisième constructeur initialise HashMap avec la capacité fournie dans l’argument. le Quatrième constructeur initialise la capacité ainsi que le taux de remplissage de l’objet HashMap.
Le défaut capacité du HashMap est 16et la valeur par défaut taux de remplissage du HashMap est 0.75.
Définition de TreeMap
Comme HashMap, TreeMap est également une classe de carte. TreeMap s'étend Carte abstraite classe et implements NavigabelMap et SortedMap. Les objets TreeMap stockent les éléments de la carte dans l’arborescence. La structure de données utilisée pour stocker la carte est la Arbre rouge-noir.
TreeMap stocke la paire valeur / clé dans l'ordre de tri, ce qui facilite la récupération rapide des éléments. L’objet TreeMap renvoie les éléments de la triés (Ascendant) ordre.
Il y a quatre constructeurs de TreeMap:
TreeMap () TreeMap (comparateur <? Super K> comp) TreeMap (Carte <? Étend K,? Étend V> m) TreeMap (SortedMap le première Les constructeurs créent un objet vide de TreeMap qui serait trié dans l'ordre naturel de ses clés. le seconde constructeur va créer une carte d'arbre vide qui sera trié par le Comparateur cmp. le troisième constructeur ci-dessus créera un treemap qui sera initialisé à l’aide des entrées de Carte m. le Quatrième constructeur créera un treemap qui sera initialisé à l’aide des entrées de SortedMap sm. Treemap n'a pas de nouvelle méthode propre, il utilise les méthodes d'interface NavigableMap et SortedMap et la classe AbstractMap. TreeMap doit être utilisé uniquement lorsque vous avez besoin d'une paire clé-valeur sous forme triée. Comme le tri inclut le coût de performance. HashMap étant désynchronisé fonctionne plus rapidement.
Conclusion: