当前位置: 首页 > 知识库问答 >
问题:

密钥匹配,但Get/ContainsKey找不到

孙德本
2023-03-14
TransitionKey current  = new TransitionKey(this.currentState, inputSymbol);
    for(TransitionKey tk: transitions.keySet()) {
        System.out.println(tk.equals(current)); // True (only one key in table)
        System.out.println(transitions.containsKey(current)); // false
        String value = transitions.get(tk).toString(); // null
    }

在TransitionKey类中:

    /**
* @override
*/
public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof TransitionKey)) return false;
    TransitionKey transitionKey = (TransitionKey) o;
    return (state.equals(transitionKey.state)) && (symbol==transitionKey.symbol);
}

/**
* @override
*/
public int hashcode() {
    int result = (int)symbol;
    result = result*31 + state.hashCode();
    return result;
}

共有1个答案

南宫鸿晖
2023-03-14

您没有重写hashcode,而是创建了一个新的hashcode方法(请注意CC)。

将代码更改为

@Override
public int hashCode() {
    int result = (int)symbol;
    result = result*31 + state.hashCode();
    return result;
}

它应该能像预期的那样工作。

 类似资料:
  • 根据以下步骤将Swagger从2.9.2升级到3.0.0: https://springfox.github.io/springfox/docs/snapshot/#migrating-from-existing-2-x-版本 在新版本中,虽然功能工作正常,但点击“/swagger-用户界面/index.html”时,以下错误会打印在日志中。 使用springfox-boot-starter 3.

  • 所以,我一直在尝试使用batchGetItem从DynamoDB表中检索代码列表 我试图使用标准方法完成我的任务,其中包括几乎使用AWS文档上提供的基本代码,如下所示: ...这就是我得到的输出: “(节点:3744)未处理PromisejectionWarning:ValidationException:提供的键元素与架构不匹配” 好吧,因为“codcategory”是表“questions\u

  • 问题内容: 我的应用程序中发生一个奇怪的问题,我将快速解释全局体系结构,然后再深入探讨我的问题。 我使用一种服务来填充来自我的数据库(由JPA驱动)的数据,然后通过EJB远程方法调用(使用Apache Wicket)将其返回到我的视图。在这一部分中,我向返回的地图添加了一个新值,以便存储最终用户的任何新值。 当用户在其浏览器中单击“添加”按钮时,会出现问题,我尝试在地图中检索新创建的项目,但失败。

  • 问题内容: 我必须访问端口443上托管的Web服务。服务提供商已与我们共享了三个证书。 ABCD.cer CA_Certificate.cer CCA_Certificate.cer 我必须通过为SSL通信创建表单链将它们添加到密钥库中。我遵循以下步骤。 在步骤4中,我有以下异常 输入密钥库密码:(并且当我输入密码时,我有以下异常) keytool错误:java.lang.Exception:答复

  • 我正在尝试对现有API启用Azure密钥库证书。我们已经在Azure Key Vault帐户中拥有秘密和Azure Key Vault证书。下面是配置证书的代码: 在我的本地计算机上,我正确地导入了证书,其中包括下载pfx格式。

  • 由于依赖关系冲突,无法完成安装。 正在安装的软件:Android Development Tools 23.0.6.1720515(com.Android.ide.eclipse.ADT.feature.feature.group 23.0.6.1720515) 当前安装的软件:Google App Engine Tools for Android 3.5.1.v201312301719-rel-