Java, HashMap или же Hashtable?


#1

В чем состоят отличия между HashMap и Hashtable в Java? Что лучше использовать если приложение одно-потоковое?


#2

HashMap и Hashtable имеют следующие отличия:

  • Hashtable синхронизируется, а HashMap - нет. Это делает HashMap лучше для одно-потоковых приложений, поскольку не синхронизированные объекты обычно работают лучше, чем синхронизированные.

  • Hashtable не разрешает null ключи или значения. HashMap позволяет использовать один null ключ и любое количество null значений.

  • Одним из подклассов HashMap является LinkedHashMap, поэтому в случае, если вам нужен предсказуемый порядок итераций (который по умолчанию является порядком размещения), вы можете легко заменить HashMap для LinkedHashMap. Это было бы не так просто, если бы вы использовали Hashtable.

Поскольку Ваше приложение будет работать в одном потоке, то я бы рекомендовал использовать HashMap.


#3

спасибо!