Реализация пользовательских ключей в Hashtable - PullRequest
2 голосов
/ 10 июля 2009

Если мы реализуем наши собственные ключи в Hashtable, то наши пользовательские ключи хеш-таблиц должны реализовывать

public int hashCode()
{
}

и

 public Object equals(Object obj)
   {
   }

Какими будут реализации этих методов?

Ответы [ 5 ]

2 голосов
/ 10 июля 2009
2 голосов
/ 10 июля 2009

Effective Java 2nd edition имеет лучшее объяснение для этих двух методов: проверьте gory deailt здесь .

1 голос
/ 10 июля 2009

После того, как вы поняли это, прочитав эффективный java , вы можете использовать для его реализации обыкновенные lang EqualsBuilder и HashCodeBuilder . Если деталь не критична по производительности, вы даже можете использовать метод рефлексии, как этот:

 public boolean equals(Object obj) {
   return EqualsBuilder.reflectionEquals(this, obj);
 }


public int hashCode() {
   return HashCodeBuilder.reflectionHashCode(this);
 }

Это не становится намного легче:)

1 голос
/ 10 июля 2009

Прочитайте эту статью: http://www.ibm.com/developerworks/java/library/j-jtp05273.html

0 голосов
/ 10 июля 2009

Эти методы используются для реализации хеш-таблицы для идентификации элементов при вставке и извлечении.

  1. хеш-код является ключом для хранения
  2. равно используемым методам содержит, получает и т. Д. Для проверки ключей.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...