本文主要是介绍集合类hashCode()方法和equals()方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、散列码: Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码。
向HashSet中添加对象时,HashSet先通过该对象的HashCode()计算出相应的桶,然后再根据equals()方法找到相应的对象,如果容器中已存在该对象则不再添加,如果不存在,则添加进去。
String和Integer这些Java自带的类都重写了hashCode()方法,如果String和Integer new出来的对象的内容是一样的,则这些对象的hashCode返回值也是一样的,尽管这些对象占用的哦是不同的内存
4、怎么重写hashCode()方法和equals()方法:
必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
如果程序员希望自己定义的类对象,占用不同的哦内存空间时,但内容却是一样的对象调用hashCode方法返回值是一样的,则程序员必须自己重写hashCode()方法,如本程序的B类
必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
装入时就会出现重复元素
Hashtable HashSet HashMap都必须的同时实现equals()方法和hashCode()方法,TreeSet和TreeMap则不需要实现equals()方法和hashCode()方法
这篇关于集合类hashCode()方法和equals()方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!