hashtable keys () keySet (), который лучше - PullRequest
0 голосов
/ 15 марта 2012

Просто любопытно, я спрашиваю, какой метод лучше использовать Hashtable.keys () или Hashtable.keySet (). Любого было бы достаточно. Почему они дали 2 метода с разными типами возврата. Есть ли какой-либо недостаток в производительности / преимущество одного над другим?

Ответы [ 2 ]

0 голосов
/ 27 августа 2015

Помимо функциональных различий, упомянутых Рахулом, сам Hashtable является старым артефактом более ранней версии Java и был модифицирован для реализации интерфейса Map.Таким образом, keySet является более поздней конструкцией, необходимой для интерфейса Map.

Кроме того, если вы пишете новый код, вам нужно прочитать подробности API для этой структуры данных на http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html и посмотретьесли вы должны рассмотреть руководящие принципы и использовать вместо этого HashMap или другие более поздние коллекции.

0 голосов
/ 15 марта 2012

набор ключей существует, потому что

возвращает представление Set ключей, содержащихся в этой Hashtable.Набор поддерживается Хэш-таблицей, поэтому изменения в Хэш-таблице отражаются в наборе, и наоборот.Набор поддерживает удаление элемента (который удаляет соответствующую запись из Hashtable), но не добавление элемента.

И keys просто возвращает перечисление ключей в этой хеш-таблице, после получения перечисления изменения не будут отражены.1005 *

...