我是一名高中生,因此对于我可能滥用的术语深表歉意。
所以我正在制作一个幻灯片益智游戏并致力于人工智能部分。因此,我有一个构造函数来构造棋盘并分配其哈希码,例如 123456780。在我的 A* 算法中,我会比较我生成的棋盘(以查找解决方案)是否已在哈希集中。所以我使用 contains 方法,对吗?但是 contains 方法如何检查两个板是否相同?
public Board()
{
board = new int [3][3];
setPieces (board);
hashCode = generateHashCode ();
}
这是我的构造函数之一。在我的板对象中,我有二维数组和哈希码。但我又想知道,Hash Set 中的内置 contains 方法是否比较两个板的 hashcode。或者我需要写一篇。
此外,当我将哈希码分配给主板时,我应该在构造函数中执行它,对吧?
谢谢你
最佳答案
正如您所发现的,您需要在重写的 hashCode()
方法中返回对象的哈希码。
您可以在该方法中计算哈希码,或者在构造函数中计算它并将其存储在字段中,然后在方法重写中返回该字段。
关于java - 关于Hash Set中的contains方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108391/