Я знаю, что есть и другие вопросы об общих передовых методах при использовании hashCode и equals, но у меня есть очень конкретный вопрос.
У меня есть класс, у которого в качестве переменной экземпляра есть массив того же класса. Чтобы быть более точным, вот код:
Class Node{
Node arr[] = new Node[5];
}
Мне нужно перезаписать hashCode для класса Node, и массив является важным решающим фактором при определении того, являются ли два узла одинаковыми. Как я могу эффективно включить массив в расчет хэш-кода?
- Изменить -
Я пытаюсь проверить, одинаковы ли два узла, что означает, что у них одинаковое количество дочерних узлов, и что эти дети приводят к точно таким же состояниям. Поэтому я эффективно пытаюсь сравнить поддеревья на двух узлах. Мне интересно, могу ли я использовать хеширование для проверки равенства.
Я думаю, что мне действительно нужно хешировать все поддерево, но я не уверен, как бы я это сделал, учитывая рекурсивный характер определения моего класса.