我需要存储一个大的哈希集,最多可以包含大约2亿个40位值。将其存储为2亿个64位值是可以接受的(尽管2亿* 16位丢失)。
要求是:
contains(long l)
和add(long l)
方法(比SQL快得多)SQL不是我想要的。
因为我真的认为我更喜欢这样的快速处理(请注意解决方案比SQL解决方案要快得多):
Fast disk-based hashtables?
Google是否有这样的Java API?
我仅使用“键”的基于磁盘的快速键/值对实现会成功吗?
或者是其他东西?
我宁愿不重新发明。
最佳答案
如果您有能力购买128 GB的磁盘,则可以每40位存储1位。
然后,您可以使用随机访问文件来检查是否设置了位或对其进行了更改。您无需插入任何值或维护索引。
关于Java:基于磁盘的快速哈希集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2346722/