:: Enseignements :: Master :: M1 :: 2007-2008 :: Java Avancé ::
[LOGO]

Quelques notes pour le TD6


Maps

Les maps sont en quelque sorte des tableaux associatifs qui permettent de lier un objet clé à un autre objet valeur.
  • Map<K,V>: les associations sont des types paramétrés par le type des clés (K) et celui des valeurs associées (V). Toutes les associations sauf exception :
    • acceptent null comme clé ou valeur
    • ne permettent pas les accès concurrents
    • testent si un objet existe ou non par rapport à la méthode equals() de l'objet
  • L'interface Map définit les méthodes :
    • isEmpty(), size(), clear*()
    • put*(), get(), remove*()
    • Opération groupée : putAll*()
    • Tests : containsKey(), containsValue()
    • Vues : keySet(), values(), entrySet()
L'interface Map définit les méthodes d'accès
  • V put(K clé, V valeur) - associe une clé à une valeur, renvoie l'ancienne valeur ou null
  • V get(Object clé) - demande la valeur pour une clé, null si il n'y a pas d'association
  • boolean remove(Object clé) - supprime le couple clé/valeur à partir d'une clé, vrai si l'association a été modifiée
Interface (interne) définissant un couple clé/valeur. Elle est paramétrée par le type de la clé (K) et le type de la valeur (V). Map.Entry possède les méthodes :
  • K getKey() : renvoie la clé
  • V getValue() : renvoie la valeur
  • V setValue(V value) : change la valeur, renvoie l'ancienne
La classe HashMap est une implémentation de l'interface Map et une extension de la classe AbstractMap.

Les objets HashMap ne garantissent pas l'ordre des éléments durant une itération de l'associations, contrairement aux collections TreeMap. En effet, la fonction de hachage disperse les éléments au sein d'une collection Map. Néanmoins, les performances des objets implantant cette classe restent constantes pour les opérations de base, telles que l'ajout (put()), l'extraction (get()).