HashMap

HashMap

Contexte

En programmation, il existe divers mécanismes pour collecter des données. Les langages de programmation tels que Java utilisent se qu’on appelle les Collections qui représentent un regroupement d’objets. En d’autres termes, une collection est un cadre avec des classes et des interfaces pour stocker et manipuler un ensemble d’éléments de données.

A quoi servent les collections?

Dans un tableau normal, il y a un nombre fixe d’éléments à stocker, il ne peut donc pas répondre à tous les besoins de stockage.

Pour y remedier , Java a introduit les collections qui sont des conteneurs permettant de regrouper des objets en une seule entité. Ces objets sont gérés par plusieurs fonctionnalités telles que l’insertion, la suppression, le tri etc… .

Et le HashMap dans tout ça?

En Java, l’interface Map appartient aux collections (voir figure 1). Map est utilisée pour représenter les données sous forme de paires clé / valeur. Il n’y a que des clés uniques et chacune a une valeur correspondante. HashMap est une classe générique du package java.util (une implémentation de l’interface Map), qui permet de stocker les données en associant une clé à une valeur. en plus du HashMap, l’interface Map présente une autre classe d’implémentation appelée TreeMap. La principale différene entre les deux est que la classe HashMap ne conserve pas un ordre spécifique dans les éléments de données (objets) contrairement à la classe TreeMap.

Figure 1 : Hiérarchie de la classe HashMap

Fonctionnement du HashMap

HashMap utilise un mécanisme de hachage en interne pour générer un identifiant unique pour un objet. HashMap contient une paire clé-valeur pour représenter l'organisation interne des données. La clé est l'identifiant des données à stocker tandis que la valeur correspond aux données réelles stockées. Cette paire clé-valeur est appelée une entrée de mappage car elle implémente l'interface Map.
Figure 2: Mécanisme de hachage

HashMap HashMap stock les paires clé-valeur à l'aide d'une table de hachage. Dans la table de hachage, chaque paire clé-valeur est mappée en fonction du hashcode dérivé de la clé. En utilisant les techniques de hachage, un hashcode est dérivé de la clé et en utilisant le hashcode, nous identifions l'index dans la liste de compartiments de la table de hachage. Cette liste de compartiments est un tableau des listes de paires clé-valeur correspondant aux codes de hachage.

Exemple d’application

Supposons un scénario comme suit pour comprendre HashMap. Supposons qu’un enseignant veuille stocker des sujets d’exposé pour un ensemble d’étudiants. Pour faciliter le référencement, chaque étudiant possède un numéros d’identifiant correspondant. Pour se faire, on peut utiliser la classe HashMap. C’est lélément « sujet-étudiant » qui est stocké dans une hashTable sous forme d’une paire clé-valeur où l’étudiant est la clé et la valeur est le sujet de l’exposé. Voirlecode ci-dessous

Une classe test est créée pour insérer les paires étudiant-sujet (clé-valeur) dans le HashMap. Ici, 3 objets étudiant sont créés avec le constructeur paramétré où l'ID étudiant est utilisé comme «clé» pour l'entrée de la Map. La valeur correspondante pour la clé (ID étudiant) correspond au sujet.

Les données sont stockées dans la HashMap de la manière suivante:


Figure 3 : Structure du HachMap

Sources

https://jmdoudoux.developpez.com/cours/developpons/java/chap-collections.php

https://en.wikipedia.org/wiki/Java_collections_framework#Differences_to_Arrays

https://techmastertutorial.in/java-collection-internal-hashmap.html

https://www.geeksforgeeks.org/java-util-hashmap-in-java-with-examples/


Saliha Beddek

0
0

Laisser un commentaire