因此,我正在使用一种搜索方法,而我的HashSet<GameBoard> explored
具有所有已探索状态。我需要在“已探究”中添加更多状态,因此我不会一遍又一遍地检查同一状态。我需要将状态与其自身的副本进行比较,如果它们的值相同,则无需再次检查。
我知道我必须重写Obj类中的.equals()
方法才能进行深度搜索,而我做到了。下面是我的equals方法。
public boolean equals (GameBoard a){
for(int j = 0;j < a.len;j++){
if(a.boardArr[j] != this.boardArr[j]){
return false;
}
}
return true;
}
我添加了GameBoard以使用explored.add(state);
进行探索。但这似乎无济于事。我什至完全注释了equals方法,结果是相同的。它不断向探索状态添加相同的状态,因此我有一个无限循环。真的需要帮助吗,有人知道如何解决吗?