HashMap 的key 不可变的问题

cocoooooa 2017-09-12 06:02:15

String t1 = "123123";
Map<String,String> hashMap = new HashMap<String,String>();
hashMap.put(t1,"000");

System.out.println(t1.hashCode());
System.out.println(hashMap.get(t1)); // 000

t1 = "1ahdjhajd";

System.out.println(t1.hashCode());
System.out.println(hashMap.get(t1)); // null


有点懵,不是说key最好是用不可变对象,比如 String,int ,但是上面的代码
...全文
278 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝同学. 2017-09-13
  • 打赏
  • 举报
回复
t1 = "1ahdjhajd";这个时候他的hashcode值已经改变了。你在从map里面去拿key,就没有这个key了。
  • 打赏
  • 举报
回复
三楼正解 楼主最好还是看点这方面的书吧 基础 有点薄弱
Timor_D 2017-09-13
  • 打赏
  • 举报
回复
galiniur0u 2017-09-12
  • 打赏
  • 举报
回复
hashmap中的key跟你外部定义的一个变量值改与不改没啥关系
李德胜1995 2017-09-12
  • 打赏
  • 举报
回复
这。。。。。
soton_dolphin 2017-09-12
  • 打赏
  • 举报
回复
hashmap 储存的key 值没变,是你所搜的key 值变了啊。比如你存进去个“苹果”, 然后搜索“香蕉”, 当然找不到了

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧