码迷,mamicode.com
首页 > 其他好文 > 详细

集合类hashCode()方法和equals()方法

时间:2014-11-16 16:03:48      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:style   color   sp   java   strong   数据   div   on   bs   

1、散列码:
        Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码。

2、利用哈希码向集合中插入数据的顺序?
        向HashSet中添加对象时,HashSet先通过该对象的HashCode()计算出相应的桶,然后再根据equals()方法找到相应的对象,如果容器中已存在该对象则不再添加,如果不存在,则添加进去。
        
3、什么时候重写hashCode()方法?
        String和Integer这些Java自带的类都重写了hashCode()方法,如果String和Integer new出来的对象的内容是一样的,则这些对象的hashCode返回值也是一样的,尽管这些对象占用的哦是不同的内存
        如果程序员希望自己定义的类对象,占用不同的哦内存空间时,但内容却是一样的对象调用hashCode方法返回值是一样的,则程序员必须自己重写hashCode()方法,如本程序的B类

4、怎么重写hashCode()方法和equals()方法:

        必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
 装入时就会出现重复元素


5、什么容器必须的重写equals方法和hashCode方法?
        Hashtable  HashSet  HashMap都必须的同时实现equals()方法和hashCode()方法,TreeSet和TreeMap则不需要实现equals()方法和hashCode()方法



集合类hashCode()方法和equals()方法

标签:style   color   sp   java   strong   数据   div   on   bs   

原文地址:http://blog.csdn.net/u010994304/article/details/41173099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!