| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> java中为什么equals方法要重写hashcode方法 -> 正文阅读 |
|
[数据结构与算法]java中为什么equals方法要重写hashcode方法 |
哈希表是由数组和链表组成,这个数组的索引值就是hashcode也就是地址,我们知道数组根据索引值查找数据的时间复杂度是O(1),索引我们equals方法比较的地址也就是这个数组的索引值,也就是hashcode值 ? 哈希表有很多算法,最简单的最常见的一种是取余算法: 就是由这个数和10取余,求到它的个位数,然后根据这个个位数进行分类,相同个位数放到同一个数组下,数组下的数据之间是由链表连接起来的,所以hashcode值相同并不代表数值就相同,它们存在哈希冲突。 举个例子: String的equals方法就是这样重写的,我们先比较地址是否相等,因为根据地址索引查到数据很快,再判断是不是string类型的,再比较内容。 总结:hashcode值存在哈希冲突 equals比较的是hashcode地址 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 3:44:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |