我正在研究一个将受益于内存数据库类对象的项目。我可能会有一两千个具有相同结构的对象,它们都继承自一个抽象类。将有几个字符串字段,一个 int,可能是一个或两个枚举(甚至可能是一组枚举),然后是一组字符串。还需要一个瞬态布尔字段,但这可能不是问题。
这些对象将根据预设数据进行实例化和构造,但如果需要,可以创建其他对象。它们可能存储在 XML 文件或类似文件中。当然,我宁愿不对整个事情进行硬连线,而使用像 SQLite 这样的本地数据库感觉有点矫枉过正。
如果不是为了一件事,存储这些对象会相对简单:我希望用户能够轻松地从任何值中找到他们想要的对象,其中大部分都是唯一的。这排除了 HashMap ,除非我想包装大量它们,这并不理想。这让我寻找一种索引的、类似内存数据库的对象,它支持通过对象的任何字段进行检索。它可能不必直接存储对象,但可以在检索时将它们组合起来,或者根据一个字段检索“行”,从用作某种键的同一“行”中获取另一个字段,然后检索对象来自基于该键的单个 HashMap。
In short, the idea is to easily and quickly retrieve objects with the same fields based on any field they contain. I've seen a variety of different libraries and such that may do this sort of thing, but there's a real myriad of these things out there. Whatever may work would need to be free and compatible with a variety of open licenses.