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);
相关推荐
谢亮_vipxieliang8 天前
ValidX vs Google Guava Preconditions:验证 vs 断言
java·spring boot·后端·spring cloud·hibernate·guava
吴声子夜歌10 天前
Guava——散列
java·guava
吴声子夜歌10 天前
Guava——并发(二)
java·网络·guava
吴声子夜歌10 天前
Guava——事件总线
java·网络·guava
吴声子夜歌11 天前
Guava——并发(一)
java·guava
吴声子夜歌11 天前
Guava——反射
java·开发语言·guava
吴声子夜歌11 天前
Guava——基本工具(二)
windows·python·guava
吴声子夜歌11 天前
Guava——基本工具(一)
windows·guava
吴声子夜歌12 天前
Guava——集合(二)
java·guava
吴声子夜歌12 天前
Guava——缓存
缓存·guava