栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

为什么对于可能插入散列表中的对象,重写过equals()方法,也必须重写哈希Code方法?

Java 更新时间:发布时间: 百科书网 趣学号

先说一下HashCode方法的常规约定
1.对象相等,hashCode值一定相等;
2.对象不相等,哈市Code值可能相等;
3.hashCode值相等,对象不一定相等;
4.hashCode值不相等,对象一定不相等;
    当我们将对象写入底层实现为散列表的集合时,会调用hashCode方法计算哈希值; 如果内容相同的两个对象,调用equals方法会返回true,但是由于我们没有重写hashCode方法,默认使用Object类的hashCode方法从对象的存储地址计算散列码,可能导致对象相等而哈希值不相等的情况;
  因此我们需要重写hashCode方法,不在通过对象的地址计算哈希值而是通过对象内容组合计算哈希值;

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/986827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号