我正在开发一个项目,该项目使用基于 B 树的自定义 Map
我搜索并发现Java版的Berkeley DB有java.util.Collection API(包括Map),但为此目的使用成熟的数据库似乎是多余的(它使用包含许多文件的目录,有几个额外的线程用于管理)。有没有更简单的解决方案?
最佳答案
我最近遇到了同样的问题,并且研究了一切,包括 NoSQL 和缓存。您需要一个基于磁盘/文件/支持的 HashMap 。
Berkeley DB Java 版是迄今为止最好的。它速度快、可扩展且完整,但如果不分发源代码或从 Oracle 购买商业版本,您就无法将其分发给客户。
除了重新发明轮子之外,唯一的选择是 JDBM2。它还具有 HashMap 和 TreeMap 。您负责定期刷新到磁盘以防止 OutOfMemoryError,它的速度不如 Berkeley DB,但它是一个非常好的第二选择。
关于java - java.util.Map 的现有基于文件的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791159/