Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 6.1  Premières classes de l'API
 6.2  Classe java.lang.Object
 6.3  Interface de programmation
 6.4  java.lang.*
 Questions
 6.5  java.util.*
 6.5.1  Classe paramétrée
 6.5.2  Classes Abstraites des collections
 6.5.3  Classes instanciables des collections
 6.5.4  Collections
 6.5.5  Interface Iterable
 6.5.6  Interface Collection
 6.5.7  Interface List
 6.5.8  Classe Vector
 6.5.9  for-each
 6.5.10  Exemple for-each sur un \texttt Vector
 6.5.11  Exemple de classe avec Vector
 6.5.12  Interface Iterator
 6.5.13  Exemple avec Iterator
 6.5.14  Dictionnaires Map
 6.5.15  Exemple pour Map
 6.5.16  Dictionnaire Hashtable
 6.5.17  Exemple pour Hashtable
 6.5.18  Représentation d'une Hashtable
 Questions
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


6.5.16 Dictionnaire Hashtable<K,V>
  • Ces dictionnaires réalisent l’interface Map.
  • La classe associée à la clé doit supporter les méthodes hashCode() et equals()

    précédent     suivant 


Les dictionnaires de type tableau associatif présente les propriété suivantes :

  • les objets sont rangés dans un tableau de conteneurs. Idéalement, il y a un seul objet par conteneur ;
  • la valeur hachée d’une clé permet d’obtenir le rang du conteneur ;
  • si plusieurs objets donnent le même valeur hachée, ils sont rangés dans le même conteneur comme dans un vecteur ;
  • les clés doivent être uniques,
  • la durée de recherche d’une clé est idéalement en O(1) temps constant pour le calcul du rang du conteneur puis accès.
  • le temps peut être en O(M) lorsqu’il y a des collisions de hachage.

Vous pouvez trouver plus de détails sur les fonctions de hachage dans la section 6.4, pages 506 à 549 du livre de D. E. Knuth, « The Art of Computer Programming, Vol 3. : sorting and searching ».

La classe de la clé doit garantir que ses méthodes equals et hashCode sont correctes, ce sont elles qui sont utilisées.

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015