Java中HashSet的深度比较

时间:2018-09-21 19:04:59

标签: java set equals hashset

因此,我正在使用一种搜索方法,而我的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方法,结果是相同的。它不断向探索状态添加相同的状态,因此我有一个无限循环。真的需要帮助吗,有人知道如何解决吗?

0 个答案:

没有答案