Quelles sont les différences entre un HashMap et un Hashtable en Java?

Quelles sont les différences entre un HashMap et un Hashtable en Java ?

Laquelle est la plus efficace pour les applications non-threaded ?

Je vous recommande de lire cet article:

Il existe plusieurs différences entre HashMap et Hashtable en Java :

  • Hashtable est synchronisé, alors que HashMap ne l’est pas. Cela rend HashMap meilleur pour les applications non non-threaded, car les objets non synchronisés sont généralement plus performants que les objets synchronisés.

  • Hashtable ne permet pas les clés ou les valeurs nulles. HashMap autorise une clé nulle et un nombre quelconque de valeurs nulles.

  • L’une des sous-classes de HashMap est LinkedHashMap. Ainsi, si vous souhaitez un ordre d’itération prévisible (qui est l’ordre d’insertion par défaut), vous pouvez facilement remplacer HashMap par LinkedHashMap. Cela ne serait pas aussi facile si vous utilisiez HashTable.

  • Puisque la synchronisation n’est pas un problème pour vous, je recommanderais HashMap. Si la synchronisation devient un problème, vous pouvez également envisager ConcurrentHashMap.