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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

hashset中用先用hash值来判断两个元素是否相同,如果相同就用equals再比较,但是equals比较的也是地址值啊,为啥要比较两次地址值呢?

3 个回复

倒序浏览
hashset追求是极快速的存储和查询(但是会浪费更多空间),因为hash算法的速度非常快,所以优先用hash比较,而equals方法就是普通的比较,速度没有hash快,另外就是大部分自定义类要重写hash()让它根据属性值来生成hash值
回复 使用道具 举报
我也遇到同样的问题,求解
回复 使用道具 举报
需要比较的对象判断equals是否相同一般会重写此方法来判断对象的内容是不是一样
你可以看下String类重写equals的方法的源码,就可以知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马