我有以下问题:非序列化的内存数据库
有C
类对象的一个Set<C> s
。 C
定义如下:
class C {
A a;
B b;
...
}
鉴于A e
,B f
,...,我想从s
找到的所有对象o
这样o.a = e
,o.b = f
,....
简单的解决方案:在流s
,过滤,收集,返回。但这需要很长时间。
半分析解决方案:创建一个Map<A, Set<C>> indexA
,它将集合拆分为a
的值。流过indexA.get(e)
,过滤其他条件,收集,返回。
更称职的解决方案:创建索引地图所有领域,选择从地图的所有条件,流过最短名单,对其他标准过滤器,收集的回报。
你会看到这是怎么回事:我们无意中建立了一个数据库。事情是,我不想序列化我的对象。当然,我可以抓住H2或HSQLDB,并坚持我的对象在那里,但我不想坚持他们。我基本上只是想在我的常规旧的Java堆对象上使用索引。
当然,必须有一些我可以重复使用的东西。
投票决定关闭,因为*“一定有什么东西在那里,我可以重复使用” *是[**的问题,要求我们建议还是找**的书,工具,**软件库* *,教程或其他非现场资源,因为他们倾向于吸引自以为是的答案和垃圾邮件,所以不适合堆栈溢出(https://stackoverflow.com/help/on-topic)。 – Andreas
您是否因为不想编写代码来维护“索引”映射而提问? – Andreas
我想避免编写该代码。没有泛型,代码将会很无聊而且难以维护。对于泛型(不提前知道“C”),代码会很有趣,但写起来很耗时。又名图书馆。 – Tillerino