A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© uuyyio 中级黑马   /  2016-4-19 19:48  /  418 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

HashSet
       
        结论:HashSet保证元素的唯一性,依赖于元素所属类的hashCode() 和 equals() 方法。
        分析:
                元素添加到HashSet集合,先走hashCode(),
                如果发现哈希值不一样,元素不重复,直接添加到集合了。
                如果发现哈希值一样,再去走equals方法,比较具体的属性值。
                        如果equals返回了true,元素重复不添加。
                        如果equals放回false,元素不重复,添加到集合。
                       
        注意事项:
                1)、工具生成hashCode()方法的理解:尽量让具有不同属性值的对象,返回不同的哈希值,以减少equals方法的调用,提高效率。
                        如果自己重写:
                                把所有成员变量的哈希值相加返回即可,引用数据调hashCode方法,基本数据用值。
               
                2)、工具生成equals()方法,有提高程序效率和增加程序健壮性的判断。
                        如果自己重写 -- 三步:
                                为了提高效率 -- 判断传递进来的对象与调用方法的对象是否是同一个(地址值一样)
                                为了程序的健壮性 -- 判断传递进来的对象与调用方法的对象是否是同一个类的实例。
                                向下转型,比较具体的属性值。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马