![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Java中equals和 hashcode的用法
在Java中当一个对象被当做索引时用hashcode,但是在一个程序中怎么看它是否被当做索引,请各位哥哥姐姐讲解一下再举两个例子,一个使用到hashcode,一个没有使用...
在Java中当一个对象被当做索引时 用 hashcode ,但是在一个程序中怎么看它是否被当做索引,请各位哥哥姐姐讲解一下再举两个例子,一个使用到 hashcode,一个没有使用到 hashcode 看看有什么区别 ,别从网上复制 网上的我都找遍了 看不懂
展开
1个回答
展开全部
hashcode 一般用来表示对象的唯一性。比如你在使用 hashset的时候,hashset是一个集合,而集合中的元素必须是唯一的,所以你向hashset中添加对象时,必须确保每个对象的hashcode是不同的。
equals 的一般实现是通过比较对象的hashcode完成的,但这不是绝对,也可以有其它的实现方式,只要你认为两个对象的某属性相等那么对象就相等也可以。
举个例子:
hashcode就如每个学生在学校的学号,在一个学校中,每个学生的学号是唯一的。学号作为一个学生的唯一性标识,在一个学校内是不可重复的。因此,可以通过看两个学号是否相同还判断这两个学号是不是说的同一个学生,这就相当于equals的比较。而除了学号,我们还可以通过一个人的身份证号码来判断,甚至,在一定的范围内,比如在一个宿舍内,你可以通过别人给你形容一个人的高矮胖瘦等而知道别人说的是谁,这就相当于是equals的其它实现方式。
equals 的一般实现是通过比较对象的hashcode完成的,但这不是绝对,也可以有其它的实现方式,只要你认为两个对象的某属性相等那么对象就相等也可以。
举个例子:
hashcode就如每个学生在学校的学号,在一个学校中,每个学生的学号是唯一的。学号作为一个学生的唯一性标识,在一个学校内是不可重复的。因此,可以通过看两个学号是否相同还判断这两个学号是不是说的同一个学生,这就相当于equals的比较。而除了学号,我们还可以通过一个人的身份证号码来判断,甚至,在一定的范围内,比如在一个宿舍内,你可以通过别人给你形容一个人的高矮胖瘦等而知道别人说的是谁,这就相当于是equals的其它实现方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询