java map 不存在的key_java – HashMap表示即使它确实存在,Key也不存在

我遇到了一个有趣的问题,我很确定是HashMap的错.考虑以下调试代码(AMap是HashMap,key是传递给此方法的值)

System.out.println("getBValues - Given: " + key);

System.out.println("getBValues - Contains Key: " + AMap.containsKey(key));

System.out.println("getBValues - Value: " + AMap.get(key));

for(Map.Entry> entry : AMap.entrySet()) {

System.out.println("getBValues(key) - Equal: " + (key.equals(entry.getKey())));

System.out.println("getBValues(key) - HashCode Equal: "+(key.hashCode() == entry.getKey().hashCode()));

System.out.println("getBValues(key) - Key: " + entry.getKey());

System.out.println("getBValues(key) - Value: " + entry.getValue());

}

现在在这个Map中我插入一个键(Channel)和值.后来我尝试用get()获取值并运行这个调试代码,在我的例子中给出了这个输出:

getBValues - Given: Channel(...)

getBValues - Contains Key: false

getBValues - Value: null

getBValues(key) - Equal: true

getBValues(key) - HashCode Equal: true

getBValues(key) - Key: Channel(Same...)

getBValues(key) - Value: []

正如您所看到的,直接从HashMap中获取密钥不起作用,但循环通过I得到完全相同的密钥,这意味着它就在get()中找不到它.我的问题是什么会导致这个? get()如何找不到存在的密钥?

我会提供一些示例代码,但我似乎无法独立重现.

有关可能导致此问题的任何建议?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值