Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как бы вы ответили на следующий вопрос ?


Автор: Wyatt 13.6.2010, 18:14
Привет. Вот я новичок в java, и не могу понять как правильно ответить на вот такой вопрос:
Какие правила и соглашения существуют для реализации методов hashCode, equals ?

Автор: susanin 13.6.2010, 23:17
по поводу equals
нашел для c# но для java будет то же самое

x.Equals(x) возвращает true.

x.Equals(y) возвращает то же значение, что и y.Equals(x).

(x.Equals(y) && y.Equals(z)) возвращает true в том и только в том случае, когда x.Equals(z) возвращает true.

Последовательные вызовы x.Equals(y) возвращают одно и то же значение до тех пор, пока не будут изменены объекты, на которые ссылаются x и y.

x.Equals(null) возвращает false.

Автор: Vasay 13.6.2010, 23:29
Wyatt, 

Почитайте: http://www.ibm.com/developerworks/ru/library/j-jtp05273/

Автор: Skipy 15.6.2010, 09:39
Цитата(Wyatt @ 13.6.2010,  18:14)
Привет. Вот я новичок в java, и не могу понять как правильно ответить на вот такой вопрос:
Какие правила и соглашения существуют для реализации методов hashCode, equals ?

Бесплатный совет: читайте документацию!

equals: http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals(java.lang.Object)

hashCode: http://java.sun.com/javase/6/docs/api/java/lang/Object.html#hashCode()

P.S. Это действительно так сложно?

Автор: MaxPayneC 15.6.2010, 10:45
В случае, если x.equals(y) есть true, x.hashCode() должен быть равен y.hashCode().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)