当前位置: 首页 > 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);

相关文章:

Google Guava 散列工具使用详解

文章目录 散列哈希函数哈希码布隆过滤器 散列 Guava 提供了一组散列&#xff08;哈希&#xff09;相关的工具类和方法&#xff0c;包括哈希函数接口、哈希算法实现、哈希码&#xff08;HashCode&#xff09;类、布隆过滤器&#xff08;BloomFilter&#xff09;等等。 Guava 提…...

AIGC-文生视频

stable diffusion的前传&#xff1a; 轻松理解 VQ-VAE&#xff1a;首个提出 codebook 机制的生成模型 - 知乎近两年&#xff0c;有许多图像生成类任务的前沿工作都使用了一种叫做"codebook"的机制。追溯起来&#xff0c;codebook机制最早是在VQ-VAE论文中提出的。相比…...

java中Collectors.groupingBy返回实例?

在Java中&#xff0c;Collectors.groupingBy()是一个用于对流元素进行分组的收集器。它可以根据指定的分类函数对流元素进行分组&#xff0c;并返回一个Map对象&#xff0c;其中键是分组的标准&#xff0c;值是属于相应组的元素列表。 下面是一个使用Collectors.groupingBy()方…...

uniapp打包的h5项目多了接口调用https://api.next.bspapp.com/client

产生跨域问题。 这个实际上是因为该项目在manifest.json文件中勾选了‘uni统计配置’导致的&#xff0c;取消勾选就可以了。 如果是小程序项目&#xff0c;在小程序开发者工具中添加可信任域名就可以了。 可以看看下面这个链接内容 uni-app H5跨域问题解决方案&#xff08;…...

探索跨境建站:如何借助软骨鱼SaaS平台快速搭建独立站

随着全球电子商务的蓬勃发展&#xff0c;作为一名资深的跨境电商从业者&#xff0c;我深知跨境建站服务需要与时俱进&#xff0c;不断迈向更高效、更智能的2.0时代。今天&#xff0c;我想和大家分享一个让我眼前一亮的解决方案——软骨鱼SaaS平台&#xff0c;这个平台彻底颠覆了…...

C语言-字符串输入输出

字符串赋值 char *t “title”;char *s;s t;并没有产生新的字符串&#xff0c;只是让指针s指向了t所指的字符串&#xff0c; 对s的任何操作就是对t做的 字符串输入输出 char string[8];scanf(“%s”, string);printf(“%s”, string);scanf读入一个单词&#xff08;到空格…...

OpenHarmony 设备启动Logo和启动视频替换指南

前言 OpenHarmony源码版本&#xff1a;4.0release 开发板&#xff1a;DAYU / rk3568 一、Logo替换 替换其中的logo.bmp 和 logo_kernel.bmp文件 注意事项&#xff1a; 1、图片的分辨率需要和设备匹配 2、如果是非首次编译&#xff08;存在缓存&#xff09;需要将out目录删…...

Python中函数添加超时时间,Python中signal使用

from time import time, sleepimport signal# 模拟要删除5条数据,中间有超时的i 5# 超时后执行的方法def timeout_handler(signal, frame):# 引发异常raise TimeoutError("删除第" str(i) "条,超时!")# 或者执行其他操作,不往外抛异常(超时的函数不会被…...

【C语言】递归详解

目录 1.前言2. 递归的定义3. 递归的限制条件4. 递归举例4.1 求n的阶乘4.1.1 分析和代码实现4.1.2 画图演示 4.2 顺序打印一个整数的每一位4.2.1 分析和代码实现4.2.2 画图推演 4.3 求第n个斐波那契数 5. 递归与迭代5.1 迭代求第n个斐波那契数 1.前言 这次博客内容是与递归有关&…...

NSSCTF 文件上传漏洞题目

目录 [SWPUCTF 2021 新生赛]easyupload1.0 [SWPUCTF 2021 新生赛]easyupload2.0 [SWPUCTF 2021 新生赛]easyupload3.0 [SWPUCTF 2021 新生赛]easyupload1.0 这是一个文件上传漏洞的题目 我们的思路是上传一句话木马&#xff0c;用工具进行连接 先编写一句话木马 将文件后缀…...

layui+ssm实现数据表格双击编辑更新数据

layui实现数据表格双击编辑数据更新 在使用layui加载后端数据请求时&#xff0c;对数据选项框进行双击即可实现数据的输入编辑更改 代码块 var form layui.form, table layui.table,layer parent.layer undefined ? layui.layer : parent.layer,laypage layui.laypag…...

windows下DSS界面本地集成linkis管理台

说明&#xff1a;当前开发环境为windows&#xff0c;node版本使用16.15.1。启动web时&#xff0c;确保后端服务已准备就绪。 1.linkis web编译 #进入项目WEB根目录 $ cd linkis/linkis-web #安装项目所需依赖 $ npm install参考官方编译说明&#xff0c;windows下编译一直异常…...

基于PaddleSeg开发的人像抠图web api接口

前言 基于PaddleSeg开发的人像抠图web api接口&#xff0c;提取官方代码&#xff0c;适配各种系统&#xff0c;通过api的接口进行访问。 环境要求 1、Python3.7以上 2、源码&#xff08;文章最后下载&#xff09; 源码结构 测试module.py中添加如下代码&#xff1a; if __na…...

Python---面向对象的基本概念

对象 对象&#xff0c;object&#xff0c;现实业务逻辑的一个动作实体就对应着OOP编程中的一个对象&#xff01; 所以&#xff1a;① 对象使用属性&#xff08;property&#xff09;保存数据&#xff01;② 对象使用方法&#xff08;method&#xff09;管理数据&#xff01; …...

cv2.threshold 图像二值化

图像二值化 whatparameters示例 what cv2.threshold是OpenCV中用于进行图像二值化的函数。它的作用是将输入图像的像素值转换为两个可能的值之一&#xff0c;通常是0&#xff08;黑色&#xff09;或255&#xff08;白色&#xff09;&#xff0c;根据一个设定的阈值。图像二值化…...

CRM:提升营销效果的关键

一场成功的营销活动&#xff0c;可以帮助企业扩大知名度&#xff0c;获取大量的优质商机。作为专业的管理软件&#xff0c;CRM系统同样具备营销管理的能力&#xff0c;帮助企业实现营销活动的规划、执行和监控&#xff0c;提高营销效果。下面说说&#xff0c;CRM营销自动化对企…...

AIGC: 关于ChatGPT中基于API实现一个StreamClient流式客户端

Java版GPT的StreamClient 可作为其他编程语言的参考注意: 下面包名中的 xxx 可以换成自己的代码基于java&#xff0c;来源于网络&#xff0c;可修改成其他编程语言实现参考前文: https://blog.csdn.net/Tyro_java/article/details/134748994 1 &#xff09;核心代码结构设计 …...

FutureTask

1. 作用 异步操作获取执行结果取消任务执行&#xff0c;判断是否取消执行判断任务执行是否完毕 2. demo public static void main(String[] args) throws Exception {Callable<String> callable () -> search();FutureTask<String> futureTasknew FutureTask&…...

【力扣热题100】207. 课程表 python 拓扑排序

【力扣热题100】207. 课程表 python 拓扑排序 写在最前面207. 课程表解决方案&#xff1a;判断是否可以完成所有课程的学习方法&#xff1a;拓扑排序实现步骤Python 实现性能分析结论 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/course-schedule…...

【滑动窗口】LeetCode2953:统计完全子字符串

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本题其它解法 【离散差分】LeetCode2953:统计完全子字符串 题目 给你一个字符串 word 和一个整数 k 。 如果 word 的一个子字符串 s 满足以下条件&#xff0c;我们称它是 完全字符串&#xff1a; s 中每个字符…...

【问题处理】如何解决PSQLException中2-byte值超出范围导致的整数溢出错误

1. 什么是PSQLException中的2-byte值溢出错误 最近在调试一个Java应用时&#xff0c;遇到了一个让人头疼的错误&#xff1a;Tried to send an out-of-range integer as a 2-byte value: 110629。这个错误看起来有点晦涩&#xff0c;但其实理解起来并不复杂。简单来说&#xff0…...

毫米波雷达测速的“火眼金睛”:从汽车ACC到手势识别,Doppler FFT如何分辨不同速度的目标?

毫米波雷达测速的“火眼金睛”&#xff1a;从汽车ACC到手势识别&#xff0c;Doppler FFT如何分辨不同速度的目标&#xff1f; 在自动驾驶汽车的前方&#xff0c;一辆卡车突然减速&#xff0c;而右侧车道有摩托车正在加速超车——毫米波雷达如何在这复杂的场景中&#xff0c;准确…...

brpc跨平台构建自动化:Jenkins与GitHub Actions终极指南

brpc跨平台构建自动化&#xff1a;Jenkins与GitHub Actions终极指南 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recomm…...

资源占用优化:OpenClaw在RTX4090D上并发控制策略

资源占用优化&#xff1a;OpenClaw在RTX4090D上并发控制策略 1. 为什么需要关注OpenClaw的资源占用&#xff1f; 去年冬天&#xff0c;当我第一次在RTX4090D上部署OpenClaw对接Qwen3-32B模型时&#xff0c;系统频繁崩溃的场景至今记忆犹新。原本以为24GB显存足以应对常规任务…...

OpenClaw多模态飞书助手:Qwen3-VL:30B实战详解

OpenClaw多模态飞书助手&#xff1a;Qwen3-VL:30B实战详解 1. 为什么需要多模态飞书助手&#xff1f; 去年夏天&#xff0c;我负责一个跨部门协作项目时&#xff0c;每天要处理上百条飞书消息。最头疼的是同事发来的各种截图——有的是数据报表需要整理&#xff0c;有的是会议…...

Genus水平共现网络分析:高效替代OTU的实战指南

1. 为什么需要Genus水平共现网络分析&#xff1f; 做微生物群落研究的朋友们应该都深有体会&#xff0c;OTU/ASV水平的共现网络分析简直就是个时间黑洞。我去年处理一个土壤微生物项目时&#xff0c;2000多个OTU的共现网络跑了整整8个小时&#xff0c;等结果的时候都能看完两集…...

别再为IP冲突头疼!YOLOv5+海康威视摄像头组网与实时检测的完整避坑指南

工业视觉组网实战&#xff1a;YOLOv5与海康威视摄像头的智能协同方案 在智能制造与安防监控领域&#xff0c;将AI算法与专业摄像设备结合已成为技术标配。但当工程师真正着手部署时&#xff0c;往往会陷入网络配置的泥潭——IP冲突导致设备失联、RTSP流媒体断断续续、多网卡环…...

重构直播互动体验:BLiveChat的跨平台弹幕解决方案

重构直播互动体验&#xff1a;BLiveChat的跨平台弹幕解决方案 【免费下载链接】blivechat 用于OBS的仿YouTube风格的bilibili直播评论栏 项目地址: https://gitcode.com/gh_mirrors/bl/blivechat BLiveChat作为一款开源的B站直播弹幕工具&#xff0c;通过仿YouTube风格的…...

CI/CD 流水线性能优化:从构建到部署

CI/CD 流水线性能优化&#xff1a;从构建到部署 前言 哥们&#xff0c;别整那些花里胡哨的理论。今天直接上硬菜——我在大厂一线优化 CI/CD 流水线性能的真实经验总结。作为一个白天写前端、晚上打鼓的硬核工程师&#xff0c;我对效率的追求就像对鼓点节奏的把控一样严格。 背…...

AI 开发实战:给团队定一套能落地的 AI 使用规范

AI 开发实战&#xff1a;给团队定一套能落地的 AI 使用规范 一、为什么团队用了 AI 反而容易更乱&#xff1f; 因为每个人都在各自试&#xff1a; 有人用来写代码有人用来写文档有人用来查错有人输出直接复制上线 如果没有基本规范&#xff0c;效率可能提升了&#xff0c;但风险…...