gpt4 book ai didi

java - 如何创建一个哈希表来比较类中的部分实例变量是否曾经出现过?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:25 25 4
gpt4 key购买 nike

现在我有一个迷宫要通过 BFS 解决以从起点找到目标。我需要打印一些信息,所以我决定创建一个类节点有 A、B 和 C 实例变量(是的,我使用 JAVA)。但我的问题是,在BFS期间,我不应该扩展具有相同A和B的节点。这意味着,例如,我首先扩展了节点(1,2,3),而不是我不应该扩展第二个节点( 1,2,5).所以我觉得我应该尝试构建一个 HashMap 或者哈希表。每次对于一个节点节点(x,y,z),我应该检查它的(x,y)是否每次都发生过。我该如何实现?它仍然是哈希时间 O(1) 吗?我应该以所有其他方式设计类(class)吗?谢谢!

最佳答案

是的,您可以为此使用哈希表。您需要做的就是定义 equals(Object)hashCode()方法。对于这些,只要您只测试 (x,y) 而不是 (z),那么任何具有相同 (x,y) 的节点都会在 hashmap 中发生冲突。但这有关系吗?你有两个具有相同 (x,y) 但不同 z 值的节点吗?那将是一个非常奇怪的迷宫......

编辑:最后听起来像 set object 也可以工作,并且正是您想要使用的。

关于java - 如何创建一个哈希表来比较类中的部分实例变量是否曾经出现过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com