总结,为什么要重写hashset的hashcode()和equals()?
Posted maplesu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结,为什么要重写hashset的hashcode()和equals()?相关的知识,希望对你有一定的参考价值。
-
看了非常多博客,怕自己忘记了,通俗易懂的总结如下
本人总结下:
重写前,比较地址,hashcode方法如果相等不一定是同一个对象,所以再用equals再比内存地址
重写后,比较值,重写hashCode方法后,值相同的不同对象返回的是同样的哈希码,但是值不同的不同对象可能也会有相同的哈希码,所以再用重写的equals方法比值
重写前不符合人的思考(如果直接只用equals效率太低,hash比对比较快,最后使用equals方法以防万无一失)
以上是关于总结,为什么要重写hashset的hashcode()和equals()?的主要内容,如果未能解决你的问题,请参考以下文章
HashSet——add remove contains方法底层代码分析(hashCode equals 方法的重写)
谈谈HashSet的存储原理及为什么重写equals必须重写hashcode方法
JavaList,LinkedList,Set,HashSet,LinkedHashSet,hashCode方法,可变参数,为什么重写equals方法必须重写hashCode方法