Google Guava 散列工具使用详解

文章目录


散列

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

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

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

哈希函数

java 复制代码
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);

哈希码

java 复制代码
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);

布隆过滤器

java 复制代码
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);
相关推荐
有梦想的攻城狮2 天前
resilience4j与guava详细比较
guava·限流器·resilience4j
safestar20124 天前
Caffeine不只是Guava Cache升级版:高并发场景下的缓存设计与实战陷阱
缓存·caffe·guava
武子康4 天前
Java-184 缓存实战:本地缓存 vs 分布式缓存(含 Guava/Redis 7.2)
java·redis·分布式·缓存·微服务·guava·本地缓存
XL's妃妃5 天前
Java缓存全解析:概念、分类、Guava Cache、算法及对比
java·缓存·guava
字节拾光录8 天前
Java工具库三足鼎立:Hutool、Apache Commons、Guava深度测评与场景化选型指南
java·apache·guava
漠然&&1 个月前
实战案例:用 Guava ImmutableList 优化缓存查询系统,解决多线程数据篡改与内存浪费问题
java·开发语言·缓存·guava
Mcband1 个月前
Guava TreeRangeSet:区间运算的数学之美!
guava
信仰_2739932431 个月前
Guava Cache淘汰算法
算法·guava
我命由我123451 个月前
Guava - Guava 基本工具 Preconditions、Optional
java·服务器·开发语言·后端·java-ee·guava·后端框架
Lisonseekpan2 个月前
Guava Cache 高性能本地缓存库详解与使用案例
java·spring boot·后端·缓存·guava