内存中的Java SQL表就像数据结构一样

有几次我想要一个类似于SQL表的数据结构,你可以在各种字段和多个字段中进行选择。 类似于内存中的SQL实现,除了我不想在数据结构中存储那么多对象。

我还要求对象可以通过标准Java方法进行序列化。

我之前已经使用多个哈希表或自定义哈希键完成了这个,但它最终成了很多代码并且非常具体。

我也使用了Groovy及其封闭能力和gpath来帮助我,但我并不总是有它(不同的项目)。

编辑:我认为我的问题更多的是对象遍历/选择问题以下是一些有趣的项目:

  • http://josql.sourceforge.net/
  • http://homepages.mcs.vuw.ac.nz/~djp/JQL/
  • http://today.java.net/pub/a/today/2006/08/03/java-object-querying-using-jxpath.html
  • http://code.google.com/p/lambdaj/ (过去我用过这个……很慢……)
  • http://jedi.codehaus.org/绝地

然而,大多数这些项目的缺点是它们比直接访问对象(非reflectiongetter / setter)慢得多,并且肯定比索引(hash)慢。

其中,JavaDB和HSQLDB具有完全内存数据库。

您是否担心将内存SQL存储用于这些目的? 你可以节省大量的开发时间; 性能开销实在是微不足道。 通过尝试自己实现这一点,您将面临更多风险。