我有以下問題:非序列化的內存數據庫
有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