Java HashTable
является синхронизированной хэш-таблицей (и существует довольно долгое время), в то время как HashMap
является несинхронизированной.
В HashTable
есть 2 способа получить ключи хеш-таблицы:
Ключи , которые:
ключ
public Enumeration keys () Возвращает перечисление ключей в этой хеш-таблице.
и
public Set keySet ()
Возвращает представление Set содержащихся ключейв этом Hashtable.Набор поддерживается Хэш-таблицей, поэтому изменения в Хэш-таблице отражаются в наборе, и наоборот.Набор поддерживает удаление элемента (который удаляет соответствующую запись из Hashtable), но не добавление элемента.
В последнем явно указано, что ключи являются прямыми ссылками на хеш-таблицу (так что остерегайтесьмодификации и т. д.).
Но для keys()
такого упоминания нет.
Итак, мой вопрос:
Возвращает ли keys()
с помощью счетчика копию ключей (в отличие от keyset()
, которые возвращают фактические ключи)?
И если да, то почемув HashMap
такого метода нет и только keyset()
предусмотрен?