栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java learn HashCode 原理 自我总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java learn HashCode 原理 自我总结

以下是经过个人学习之后 对于Hash Code 的总结 可能存在错误:

在即将结束 对于集合框架的学习——也就是学到Hash Code 这里 感觉 对于算法的时间复杂度和空间复杂度 要求也越来越高 所以需要积累更多高效的算法在写代码时。

实现了List 接口的容器类 是在进行集合框架学习时 第一时间接触的 比如
ArrayList 之后 再是 Map Set 接口
之后发现 容器类有存储就有插入 查询 删除 修改 这些基本操作就涉及到了时间的效率问题

ArrayList 和 HashMap 同时插入等量的对象量 进行同一个对象 查找
HashMap 几乎不用时间 而 Array List 需要花大量时间去遍历再得到
由于HashMap是键值对 知道键就可以查询 速度很快

用空间换时间的思维方式:

由HashMap的高性能 对其为何如此做出分析 才得知其Hashcode
也就是存在于HashMap 的每一个对象都有一个HashCode(散列值)
hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。

就如数组的下标一样 知道脚标直接就能找到 不同的是 键是唯一但键可以对应多个值 要特定查询时 处理知道键去找对应值 也可以做个分类把属于同一类的值分在一个键 再得知键 之后用equals再找 ,当然这在空间上花费也就多了 但是时间上节省了

说到HashMap 不难提及 Hashset
Hashset 在其中封装了HashMap 所以实质是你在实例化Hashset对象之后进行数据插入是插入键 因此它不允许有重复数据
怎样判断不重复 —— hashCode不一样 一定不重复 一样 在看其中对应的值 利用equals 判断。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424676.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号