1、哈希码:
2、利用哈希码向集合中插入数据的顺序?
3、什么时候重写hashCode()方法?
5、什么容器必须的重写equals方法和hashCode方法?
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()方法
版权声明:本文博主原创文章,博客,未经同意不得转载。