当前位置: 首页 > news >正文

Google Guava 散列工具使用详解

文章目录

  • 散列
    • 哈希函数
    • 哈希码
    • 布隆过滤器


散列

Guava 提供了一组散列(哈希)相关的工具类和方法,包括哈希函数接口、哈希算法实现、哈希码(HashCode)类、布隆过滤器(BloomFilter)等等。

Guava 提供了多种哈希函数实现,如:

  • Murmur3_32:Murmur3_32 Hash 算法,提供了较好的散列分布和快速计算的性能。
  • SipHashFunction:SipHash 算法,提供了能防止哈希碰撞的加密级别的安全性和高速计算的性能。
  • Sha256:SHA-256 哈希算法。
  • Sha512:SHA-512 哈希算法等。

哈希函数

HashFunction hashFunction = Hashing.sha256();
HashCode hashCode = hashFunction.newHasher().putString("example", Charsets.UTF_8).putInt(123).hash();
String hexHashCode = hashCode.toString();
System.out.println("Hash code: " + hexHashCode);

哈希码

HashCode hashCode1 = Hashing.sha256().hashString("example1", Charsets.UTF_8);
HashCode hashCode2 = Hashing.sha256().hashString("example2", Charsets.UTF_8);
boolean isEqual = hashCode1.equals(hashCode2);
System.out.println("Hash codes are equal: " + isEqual);

布隆过滤器

int expectedInsertions = 1000;
double falsePositiveProbability = 0.01;
BloomFilter<String> bloomFilter = BloomFilter.create(Funnels.stringFunnel(Charsets.UTF_8),expectedInsertions,falsePositiveProbability
);
bloomFilter.put("example1");
bloomFilter.put("example2");
boolean mightContain = bloomFilter.mightContain("example1");
System.out.println("Might contain example1: " + mightContain);
http://www.lryc.cn/news/252855.html

相关文章:

  • AIGC-文生视频
  • java中Collectors.groupingBy返回实例?
  • uniapp打包的h5项目多了接口调用https://api.next.bspapp.com/client
  • 探索跨境建站:如何借助软骨鱼SaaS平台快速搭建独立站
  • C语言-字符串输入输出
  • OpenHarmony 设备启动Logo和启动视频替换指南
  • Python中函数添加超时时间,Python中signal使用
  • 【C语言】递归详解
  • NSSCTF 文件上传漏洞题目
  • layui+ssm实现数据表格双击编辑更新数据
  • windows下DSS界面本地集成linkis管理台
  • 基于PaddleSeg开发的人像抠图web api接口
  • Python---面向对象的基本概念
  • cv2.threshold 图像二值化
  • CRM:提升营销效果的关键
  • AIGC: 关于ChatGPT中基于API实现一个StreamClient流式客户端
  • FutureTask
  • 【力扣热题100】207. 课程表 python 拓扑排序
  • 【滑动窗口】LeetCode2953:统计完全子字符串
  • base64转PDF
  • clip-path,css裁剪函数
  • 第二证券:食品饮料板块拉升,乳业股亮眼,西部牧业“20cm”涨停
  • React 好用的工具库
  • C++面试宝典第2题:逆序输出整数
  • Twincat功能块使用经验总结
  • 香港服务器时间不准,差8小时
  • C++ 抽象类和接口 详解
  • 【Linux】awk 使用
  • LeetCode力扣每日一题(Java):9、回文数
  • WPF前端实现人脸扫描动画效果