Java 中最全的 hash 算法集合

👆🏻👆🏻👆🏻关注博主,让你的代码变得更加优雅。

前言

Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

官网:https://www.hutool.cn/

推荐说明

HashUtil其实是一个hash算法的集合,此工具类中融合了各种hash算法。

最佳实践

引入pom


<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <!-- 请查看最新版本 https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <version>5.8.26</version>
</dependency>

方法

这些算法包括:

  1. **additiveHash** 加法hash
  2. **rotatingHash** 旋转hash
  3. **oneByOneHash** 一次一个hash
  4. **bernstein** Bernstein’s hash
  5. **universal** Universal Hashing
  6. **zobrist** Zobrist Hashing
  7. **fnvHash** 改进的32位FNV算法1
  8. **intHash** Thomas Wang的算法,整数hash
  9. **rsHash** RS算法hash
  10. **jsHash** JS算法
  11. **pjwHash** PJW算法
  12. **elfHash** ELF算法
  13. **bkdrHash** BKDR算法
  14. **sdbmHash** SDBM算法
  15. **djbHash** DJB算法
  16. **dekHash** DEK算法
  17. **apHash** AP算法
  18. **tianlHash** TianL Hash算法
  19. **javaDefaultHash** JAVA自己带的算法
  20. **mixHash** 混合hash算法,输出64位的值

写在最后

给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
github地址:https://github.com/zhuangjiaju/easytools
gitee地址:https://gitee.com/zhuangjiaju/easytools

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaHash是一种常用的存储数据的方法,特别是在HashMap和HashSet等集合Hash函数是计算的基本部分,Java为使用Hash函数提供了很好的支持。Hash函数将输入数据映射为一个固定长度的哈希值,这个哈希值可以用来快速查找和比较数据。使用Hash函数可以提高数据的存储和检索效率。\[1\] 在Java,我们可以使用不同的Hash算法来计算哈希值,例如MD5、SHA-1、SHA-256等。每种算法都有自己的特点和适用场景。了解Hash的工作原理可以帮助我们更明智地选择适合我们需求的算法。\[2\] 在Java,我们可以使用Hash函数来存储数据,例如在HashMap使用put方法将键值对存储起来。在put方法,会根据键的哈希值计算出对应的索引位置,然后将值存储在该位置上。如果发生哈希冲突,即不同的键计算出相同的哈希值,Java会使用链表或红黑树等数据结构来解决冲突。\[3\] 总之,JavaHash是一种常用的存储数据的方法,通过Hash函数将数据映射为哈希值,可以提高数据的存储和检索效率。在Java,我们可以使用不同的Hash算法来计算哈希值,并通过HashMap等集合来存储和管理数据。 #### 引用[.reference_title] - *1* *2* [JavaJavaHash简介](https://blog.csdn.net/yueqian_edu/article/details/125696455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java基础之Hash详解](https://blog.csdn.net/qq_38130094/article/details/104178379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庄家钜Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值