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方法,避免在散列表中
* 出现问题

posted @ 2017-10-09 17:02  BBS_自律  阅读(163)  评论(0编辑  收藏  举报