`
jiangxiabeijing
  • 浏览: 26861 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hashCode

 
阅读更多


分享到:
评论
3 楼 wjz628956 2012-09-21  
谢谢, 受教了
2 楼 jiangxiabeijing 2012-09-13  
wjz628956 写道

/*
         * 不能修改参与哈希算法的变量,如果修改会导致此对象的hashcode值改变,进而无法找到该对象。
         * 比如下面的删除操作,将参与哈希算法的变量修改值后,其hashcode值改变,但是对象在集合中的位置没有随之改变,
         * 因此我们在制定删除的时候,根据当时对象的hashcode值(改变以后的)去集合中搜索,是搜索不到对象的,
         * 因此没有真正删除对象,如果这样操作日积月累,就会导致内存泄漏
         */ 

想问下, 该怎么重写hashCode方法呢?




一般情况下,你可以使用IDE来自动生成hashcode算法,比如我使用eclipse,他里边就有重写hashcode和equals方法,无需自己手动去重写。
如果IDE重写的方法不能满足实际需要的话,那么你就得根据具体的需求来制定一个哈希算法,这里就不阐述具体怎么写了。
1 楼 wjz628956 2012-08-16  

/*
         * 不能修改参与哈希算法的变量,如果修改会导致此对象的hashcode值改变,进而无法找到该对象。
         * 比如下面的删除操作,将参与哈希算法的变量修改值后,其hashcode值改变,但是对象在集合中的位置没有随之改变,
         * 因此我们在制定删除的时候,根据当时对象的hashcode值(改变以后的)去集合中搜索,是搜索不到对象的,
         * 因此没有真正删除对象,如果这样操作日积月累,就会导致内存泄漏
         */ 

想问下, 该怎么重写hashCode方法呢?

相关推荐

Global site tag (gtag.js) - Google Analytics