java基础 equals和hashCode、HashMap
我们知道equals和hashCode都是Object的方法,equals是比较对象是否相同的,默认的是比较地址值,hashCode是获取哈希码的,获取哈希码是有一套哈希算法的,具体没研究,每个版本的java都有些不一样。 equals和hashCode的关系更多的是一种约定,equals相同时,hashCode一定是相同的,equals不同时,hashCode也可能是相同的。所以才会有,重写equals方法一定要重写hashCode方法 hashCode是在HashMap中使用的,在hashMap是采用数组加链表的方式实现的,hashCode通过再hash然后能快速定位到数组的位置,然后再通过equals在链表中查找。说白了hashCode的存在就是为了提高查找效率。 Java中HashMap的实现原理 Java基础面试题 Object类中Hashcode 和 equals区别与联系是什么? HashMap的源码需要好好研究一下,它用到了红黑树 Java源码解析——集合框架(五)——HashMap源码分析 来源: CSDN 作者: Zhongyi_Li 链接: https://blog.csdn.net/lizhongyisailang/article/details/104069076