hashCode对Map的影响

Posted bbs1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashCode对Map的影响相关的知识,希望对你有一定的参考价值。

// TODO Auto-generated method stub
Map<point, Integer> map=new HashMap<point,Integer>();
point p=new point(1, 2);
map.put(p, 100);
Integer i=map.get(p);
System.out.println(i);
/**
* 改变key的hashCode的值
* 这组数据,不再被指向
* 从一个新的内存中是空的去取得 value
* 空了
*/
p.setX(2);
i=map.get(p);
System.out.println(i);
/**
* 此时的Map中还是含有原来的数据
*/
System.out.println(map);
/**
* 在重新存入,修改后的p
* 原来的空内存,有值了
*/
map.put(p, 200);
System.out.println(map);
/**
* 删除200
*
*/
map.remove(p);
System.out.println(map);
/**
* 删除100的
* 需要把指针指向 原来的值
*/
p.setX(1);
map.remove(p);
System.out.println(map);

}

 

重写equals方法时必须重写hasCode方法,避免在散列表中
* 出现问题

以上是关于hashCode对Map的影响的主要内容,如果未能解决你的问题,请参考以下文章

Map List相关

Java19hashcode/hashset原理,Map,内部接口

JAVA中重写equals方法为啥要重写hashcode方法说明

HashMap简介以及hashCode写法的建议

something_about_hashCode

.map(function(item)...)这个是按hashcode自动遍历的,怎么才能按照我想要的顺序遍历呢?