Реализация хеш-кода и равно для пользовательских классов
Так что у меня есть много пользовательских классов, которые также имеют собственные выражения внутри них с использованием композиции.
У моих пользовательских классов есть переменные, которые меняются очень часто, и я добавляю их в HashSets. Поэтому мой вопрос заключается в том, когда я реализую hashCode - что мне делать для класса, в котором есть только частные поля, которые постоянно меняются?
Вот пример одного пользовательского класса:
public class Cell {
protected boolean isActive;
protected boolean wasActive;
public Cell() {
this.isActive = false;
this.wasActive = false;
}
// getter and setter methods...
@Override
public int hashCode() {
// HOW SHOULD I IMPLEMENT THIS IF THIS custom object is constantly
// being added into HashSets and have it's private fields isActive
// and wasActive constantly changed.
}
// ANOTHER QUESTION Am I missing anything with this below equals implementation?
@Override
public boolean equals(Object object) {
boolean result = false;
if (object instanceof Cell) {
Cell otherCell = (Cell) object;
result = (this.isActive == otherCell.isActive && this.wasActive ==
otherCell.wasActive);
}
return result;
}