Aller au contenu

Java — HashMap vs TreeMap vs LinkedHashMap

Ces trois implémentations de Map sont très utilisées en Java. Bien comprendre leurs différences est essentiel pour choisir la bonne structure.


1. Idée simple

  • HashMap → rapide, pas d’ordre
  • TreeMap → trié (ordre naturel ou custom)
  • LinkedHashMap → garde l’ordre d’insertion

2. HashMap

Caractéristiques

  • pas d’ordre garanti
  • très rapide (O(1) en moyenne)
  • basé sur le hash

Exemple

Map<String, Integer> map = new HashMap<>();
map.put("B", 2);
map.put("A", 1);

System.out.println(map); // ordre aléatoire

3. TreeMap

Caractéristiques

  • éléments triés
  • basé sur un arbre (Red-Black Tree)
  • complexité : O(log n)

Exemple

Map<String, Integer> map = new TreeMap<>();
map.put("B", 2);
map.put("A", 1);

System.out.println(map); // {A=1, B=2}

4. LinkedHashMap

Caractéristiques

  • garde l’ordre d’insertion
  • plus prévisible que HashMap
  • légèrement plus lent

Exemple

Map<String, Integer> map = new LinkedHashMap<>();
map.put("B", 2);
map.put("A", 1);

System.out.println(map); // {B=2, A=1}

5. Comparaison rapide

Map Ordre Complexité Usage principal
HashMap ❌ aucun O(1) performance
TreeMap ✔️ trié O(log n) données ordonnées
LinkedHashMap ✔️ insertion O(1) ordre prévisible

6. Quand utiliser ?

  • HashMap → cas général, performance
  • TreeMap → besoin de tri
  • LinkedHashMap → conserver l’ordre

Pièges fréquents

  • croire que HashMap est ordonné
  • utiliser TreeMap sans besoin de tri
  • oublier le coût O(log n)

7. Questions classiques

Q1

quelle Map est triée ? TreeMap


Q2

la plus rapide ? HashMap


Q3

laquelle garde l’ordre d’insertion ? LinkedHashMap


Q4

complexité de TreeMap ? O(log n)


8. À retenir

  • HashMap = rapide, sans ordre
  • TreeMap = trié, plus lent
  • LinkedHashMap = ordre d’insertion

🧾 En résumé

  • choisir la bonne Map dépend du besoin
  • performance vs ordre vs tri
  • chaque implémentation a un cas d’usage précis

Bien choisir sa Map impacte directement les performances et le comportement du programme.


Voir aussi