知识点:
1.如果两个对象用equals不等,则hashcode必不相同
为啥
因为爱情。
我们知道set集合是不允许元素重复的,那怎么保证不重复呢。用equals方法就够了呀。但是一旦数据量很大,那一个对象去和集合里对象比较的时候,每次都要调用equals方法,而equals方法的实现是通过==实现的,即比较地址,地址是要访问底层才能拿到的,所以行效率低。
那怎么解决呢?就是重写hashcode方法,而hashcode是自己生成的,不用访问底层,这个可以查看String的源码,
我每次比较的时候,先比较hashCode,如果不相等,那就不用比了,直接返回false,如果相等,我再次调用equals方法进行比较,这样就提升了效率。