Ява хэш-таблица все еще синхронизируется в версии 7? - PullRequest
2 голосов
/ 06 февраля 2012

Я прочитал одно из руководств по Оракулам, и там упоминалось, что хеш-таблица больше не синхронизируется. С каких пор? http://docs.oracle.com/javase/tutorial/collections/implementations/index.html Третий абзац после таблицы.

Ответы [ 4 ]

5 голосов
/ 06 февраля 2012

Нет, Hashtable все еще синхронизирован.Абзац, на который вы ссылаетесь, даже прямо говорит:

Унаследованные коллекции Vector и Hashtable синхронизируются .

(Предыдущее предложение:

[...] Тот факт, что эти реализации несинхронизированы [...]

, относится кколлекции в таблице, которые не включают HashTable.)

4 голосов
/ 06 февраля 2012

Класс legacy class & ndash; Hashtable - синхронизируется.
современный класс & ndash; HashMap - не синхронизируется.

2 голосов
/ 06 февраля 2012

Из указанного вами абзаца:

Устаревшие коллекции Vector и Hashtable синхронизируются.

Из ссылки на Java 7 Hashtable API:

В отличие от новых реализаций коллекции, Hashtable синхронизируется.

(см. http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html)

0 голосов
/ 06 февраля 2012

Из javadoc: «В отличие от новых реализаций коллекции, Hashtable синхронизируется. Если поточно-ориентированная реализация не требуется, рекомендуется использовать HashMap вместо Hashtable.»

Так что да, HashTable в Java 7 по-прежнему полностью синхронизирован.

...