Ответ 1
Самая прямая замена Hashtable
- HashMap
.
В отличие от того, что может быть важно, все релевантные методы Hashtable
синхронизируются, пока они не синхронизируются на HashMap
.
Когда я попытался использовать класс хэш-таблицы, Netbeans дал мне ошибку:
Пока они поддерживаются, эти классы были устаревшими классами коллекции JDK1.2 и, вероятно, не должны использоваться в новой разработке.
Однако я не могу найти пример онлайн, чтобы лучше заменить Hashtable
. Любые предложения?
Самая прямая замена Hashtable
- HashMap
.
В отличие от того, что может быть важно, все релевантные методы Hashtable
синхронизируются, пока они не синхронизируются на HashMap
.
Лучшая замена Hashtable
HashMap
.
Что касается устаревания, я не имею к этому ссылки, но Javadoc утверждает:
Начиная с платформы Java 2 v1.2, этот класс был доработан до реализуйте интерфейс
Map
, сделав его членом Структура коллекций Java.
Вы должны использовать HashMap, но он не предназначен для параллельных сред, где вы можете использовать ConcurrentHashMap
.
ИЛИ
Map<K,V> myMap = Collections.synchronizedMap(/*any map instance*/);
Возможно, вы можете использовать Hashmap:
Map<String, Integer> mymap = new HashMap<String, Integer>();
Есть случаи, когда для метода вне вашего контроля требуется Hashtable
.
Java javax.management.ObjectName
является
такой пример [1].
Если требуется внешний интерфейс, вам нужно использовать Hashtable
.
В netbeans вы можете использовать:
@SupresssWarnings("UseOfObsoleteCollectionType")
для локального предупреждения.
См
1: Интересно, почему они использовали Hashtable
, а не HashMap
, так как ObjectName
доступный с 1,5 и Hashtable
устарел, поскольку 1.2