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);
相关推荐
CN.LG18 小时前
浅谈Java库之‌Guava
guava
Wx-bishekaifayuan15 天前
springboot市社保局社保信息管理与分析系统-计算机设计毕业源码03479
java·css·spring boot·spring·spring cloud·servlet·guava
鹏阿鹏17 天前
【SpringBoot】Guava包Cache缓存的使用
spring boot·缓存·guava
Wx-bishekaifayuan21 天前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
非往23 天前
五、Java并发 Java Google Guava 实现
java·开发语言·guava
gorgor在码农23 天前
Google Guava 发布订阅模式/生产消费者模式 使用详情
guava
鱼跃鹰飞1 个月前
大厂面试真题-如果使用guava limiter实现实例级别的缓存
缓存·面试·guava
鱼跃鹰飞1 个月前
大厂面试真题-caffine比guava有什么提升?
数据库·mysql·面试·职场和发展·guava
ldxxxxll1 个月前
Guava使用指南2
java·算法·guava
电脑令人发狂的2 个月前
Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存
spring boot·jar·guava