Если мы реализуем наши собственные ключи в Hashtable, то наши пользовательские ключи хеш-таблиц должны реализовывать
public int hashCode() { }
и
public Object equals(Object obj) { }
Какими будут реализации этих методов?
Прочитайте "Effective Java 2nd Edition", сейчас самое подходящее время.
Метод HashCode и Equals в Java-объекте - прагматическая концепция
Реализация Java Equals
Равенство и реализация хэш-кода .
Effective Java 2nd edition имеет лучшее объяснение для этих двух методов: проверьте gory deailt здесь .
После того, как вы поняли это, прочитав эффективный java , вы можете использовать для его реализации обыкновенные lang EqualsBuilder и HashCodeBuilder . Если деталь не критична по производительности, вы даже можете использовать метод рефлексии, как этот:
public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); }
Это не становится намного легче:)
Прочитайте эту статью: http://www.ibm.com/developerworks/java/library/j-jtp05273.html
Эти методы используются для реализации хеш-таблицы для идентификации элементов при вставке и извлечении.