黑马程序员技术交流社区

标题: hashset中的保证元素唯一的原理 [打印本页]

作者: 任楚贤    时间: 2016-3-16 22:51
标题: hashset中的保证元素唯一的原理
hashset中用先用hash值来判断两个元素是否相同,如果相同就用equals再比较,但是equals比较的也是地址值啊,为啥要比较两次地址值呢?

作者: ameanboy    时间: 2016-3-16 23:13
hashset追求是极快速的存储和查询(但是会浪费更多空间),因为hash算法的速度非常快,所以优先用hash比较,而equals方法就是普通的比较,速度没有hash快,另外就是大部分自定义类要重写hash()让它根据属性值来生成hash值
作者: fanfuhu1992    时间: 2016-3-17 01:55
我也遇到同样的问题,求解
作者: 骓逝    时间: 2016-3-17 10:54
需要比较的对象判断equals是否相同一般会重写此方法来判断对象的内容是不是一样
你可以看下String类重写equals的方法的源码,就可以知道了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2