java - 关于Hash Set中的contains方法的问题

标签 java contains hashcode hashset

我是一名高中生,因此对于我可能滥用的术语深表歉意。

所以我正在制作一个幻灯片益智游戏并致力于人工智能部分。因此,我有一个构造函数来构造棋盘并分配其哈希码,例如 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/

相关文章:

sql - ORA-29908 : missing primary invocation for ancillary operator

java - 有没有办法检查 Stream 是否包含所有集合元素?

sql - 返回在全文搜索中找到的短语的周围文本,SQL 2005

c - 高速缓存的哈希函数好吗?

java - 带选项卡的 JFace 对话框

Java 可编辑的 JCombobox Keylistener Enter 键事件

c# - 相同的 GUID 可以产生不同的哈希码吗?

r - R 中用于文本分类的特征散列

java - 在这种情况下我需要制作自定义事件吗?

java - 支持部分对象更新的 Java 嵌入式数据库