Une table associative est une collection qui associe des valeurs à des clefs (uniques)

Une liste est en soit une table associative entre un index (clef unique) et une valeur

En Java

On a une interface Map, et deux implémentations HashMap et TreeMap

L’interface Map

L’interface prend deux types génériques (et n’hérite pas de Collection, ni de Iterable !).

Consultation

On a les méthodes de consultation

  • boolean isEmpty() — Vérifie si la table associative est vide
  • int size() — Retourne le nombre d’associations
  • boolean containsKey(Object k) — Vérifie si la table associative contient une clef
  • V get(Object k) — Retourne la valeur associée à une clef
  • V getOrDefault(Object k, V d) — Retourne la valeur associée à une clef, ou la valeur par défaut qui est donnée si il n’existe pas cette clef

Vues sur les clefs et valeurs

On a des méthodes qui permettent d’obtenir des vues sur des clefs, valeurs, ou une vue sur les associations clefs-valeurs.

  • Set<K> keySet() — Retourne une vue sur l’ensemble des clefs
  • Collection<V> values() — Retourne une vue sur les valeurs
  • Set<Map.Entry<K, V>> entrySet() — Retourne une vue sur l’ensembles des associations clefs-valeurs

Si la table est modifiable, ces vues le sont également

L’interface Map.Entry

C’est une interface imbriquée et statique, qui prend deux paramètres du type de la clef et du type de la valeur (génériques).

Vu que c’est une vue, elle a une fonction qui permet de modifier la valeur d’une clef donnée