1、散列码:
Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码。
2、利用哈希码向集合中插入数据的顺序?
向HashSet中添加对象时,HashSet先通过该对象的HashCode()计算出相应的桶,然后再根据equals()方法找到相应的对象,如果容器中已存在该对象则不再添加,如果不存在,则添加进去。
3、什么时候重写hashCode()方法?
String和Integer这些Java自带的类都重写了hashCode()方法,如果String和Integer
new出来的对象的内容是一样的,则这些对象的hashCode返回值也是一样的,尽管这些对象占用的哦是不同的内存
如果程序员希望自己定义的类对象,占用不同的哦内存空间时,但内容却是一样的对象调用hashCode方法返回值是一样的,则程序员必须自己重写hashCode()方法,如本程序的B类
4、怎么重写hashCode()方法和equals()方法:
必须同时实现equals()方法 和 hashCode() 方法,只要有任意一个方法没有实现
装入时就会出现重复元素
5、什么容器必须的重写equals方法和hashCode方法?
Hashtable HashSet HashMap都必须的同时实现equals()方法和hashCode()方法,TreeSet和TreeMap则不需要实现equals()方法和hashCode()方法
时间: 2024-08-29 03:33:39