永发信息网

Java先将key和val插入Hashtable,再在外面改key的属性,用containsKey(key)返回false,但entrySet()中还有

答案:2  悬赏:10  手机版
解决时间 2021-04-16 18:44
Java先将key和val插入Hashtable,再在外面改key的属性,用containsKey(key)返回false,但entrySet()中还有
最佳答案
这个很正常,没错的程序。
你两个key是不相等的。
再讲清楚一点。这种hashtable的实现有关。
对于你这个例子,你God key = new God();时,这个key的hashcode比如是1,你把这个对象put到table里去,table就根据1这个数计算了一个内存地址给key了。
你setName后,对于你的key来说它的hashcode就变了,比如说变成2.这时对于table来说,它只包含内存地址为1的一个对象,并没有地址为2的对象。当然你就在containsKey里找不到了。如果,你再put一下,table就会根据2这个数来分个内存地址给key。这两个地址其实都是指向一个对象key
全部回答
这个程序没错啊,写一个简单一点的例子你就能理解了。
Hashtable table= new Hashtable();
int i = 1;
table.put(i,"1");
System.out.println(table.containsKey(i));
i = 2;
System.out.println(table.containsKey(i));
这样的话 输出结果为:
true
false
跟你上面的代码意义是一样的追问谢谢了,你这个通俗易懂,但没道出Hashtable的真正实现原理。还是要谢谢你啦。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
猴年给爱人的祝福语,猴年老人健康长寿祝福语
房地产公司文员的工作内容是什么?
滚土岭地址有知道的么?有点事想过去
最好的我们张平台词,最好的我们中张平被他小
我的雷朋镜片变成这样了怎么办?
人力资源管理的题目
这个背景音乐是什么?
阳明公寓东区西门地址有知道的么?有点事想过
丽江送餐 外卖
辉煌养生会所地址在什么地方,想过去办事
别人邀请我加入滔滔 为什么老是系统繁忙?
挂式空调哪个牌子好,我要买空调挂壁式的什么
天瑞园林这个地址在什么地方,我要处理点事
《山河故人》山河在那,故人在哪
宝剑出鞘下一句是什么,关于宝剑的句子
推荐资讯
描绘夏日美景的句子,描述夏天夜晚的诗句
泰拉瑞亚金钱槽怎么的就是可以召唤小猪储
德国可以刷银联卡吗,在塞班岛可以刷卡吗?
英语翻译不要标题名,老子要课文翻译!翻译了准
爱情分手的古诗词,用一句名言让分手的人和好
高一家长对学生的寄语,高中家长寄语
毛公鼎是不是贵族日常使用的饮酒器具
小猫咪的拼音怎么写,呜咪的拼音读
梁启超语录人之生,梁启超的人生须知负责任的
正月搬家有什么习俗
如何通过铭牌查电机的主动轮直
我就是我的英文怎么写,我就是我 用英语怎么表
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?