在java对象中存储大十六进制数(md5)的最有效方法

考虑到以下用例,将文件的MD5总和存储在java(或groovy)对象中的最有效方法(性能和存储空间最佳)是什么:

>我需要与数以千计的其他md5总和进行比较.
>我可能需要将其存储在HSQLDB中,以便可以根据md5提取/分组记录
>可以作为键存储在Map中

我试图避免将其存储为String作为字符串比较将更昂贵并占用更多空间. BigInteger(字符串,基数)会更有效吗?另外,如果在数据库中持久存在,应该选择什么数据类型?

解决方法:

创建一个包装byte []并且不提供突变的类.如果要将其用作映射中的键,则需要具有可比性,或者具有哈希码.使用byte [],您可以更轻松地从前32位计算简单的哈希码.

上一篇:java – 使用变量在Groovy中定义地图


下一篇:java – 在Gradle设置文件中包含使用通配符的子项目