如何计算庞大的字符串列表的好哈希代码?
发布时间:2020-12-14 05:59:31 所属栏目:Java 来源:网络整理
导读:在一次传递中基于这些字符串的值计算哈希码的最佳方法是什么? 好的我的意思是它需要: 1 – fast:我需要获取大字符串(10 ^ 3..10 ^ 8项)的短字符串的哈希码. 2 – 识别整个数据列表这么多列表可能只有几个不同的字符串必须有不同的哈希码 怎么用Java做?
在一次传递中基于这些字符串的值计算哈希码的最佳方法是什么?
好的我的意思是它需要: 1 – fast:我需要获取大字符串(10 ^ 3..10 ^ 8项)的短字符串的哈希码. 2 – 识别整个数据列表这么多列表可能只有几个不同的字符串必须有不同的哈希码 怎么用Java做? 也许有一种方法可以使用现有的字符串哈希码,但如何合并为单独的字符串计算的许多哈希码? 谢谢. 解决方法
为你创建一个占位符类,然后使用
CRC32 class.它简单快速:
import java.util.zip.CRC32; public class HugeStringCollection { private Collection<String> strings; public HugeStringCollection(Collection<String> strings) { this.strings = strings; } public int hashCode() { CRC32 crc = new CRC32(); for(String string : strings) { crc.update(string.getBytes()) } return (int)( crc.getValue() ); } } 如果集合本身是不可变的,您可以计算一次哈希并将其存储以便重复使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何使用Jsoup从html中提取段落文本?
- jsf – java.lang.NoClassDefFoundError:javax / servlet
- java – OkHttp3 SocketTimeoutException(在Android应用程序
- Android下获取SD卡的状态并写入文件到SD卡
- java万年历,获取该年月日历表
- iOS Remote Notification远程消息推送处理
- 在R中没有NA强制将字符转换为数字
- java – SpringBoot,如何在不使用ldif的情况下使用LDAP进行
- java-当我们在类名中使用“ iOS”作为单词时,是否应该将“
- Java类变量和成员变量初始化过程的应用介绍