我有一個非常簡單的數據結構(基本上是一個包含一些數組和單值的結構),但我需要記錄數據結構的歷史記錄,以便我可以高效地獲取數據結構的內容時間。Java:版本化的數據結構?
有沒有比較直接的方法來做到這一點?
我能想到的最好的方法是用一些處理所有變異操作的東西封裝整個數據結構,將數據存儲在functional data structures中,然後對每個變異操作在Map索引中緩存數據結構的副本通過時間排序(例如,具有實時時間的TreeMap作爲關鍵字,或具有突變操作的計數器的HashMap與結合存儲在TreeMaps中的一個或多個索引結合實時/滴答計數等映射到突變操作)
任何建議?在一個案例中,我已經有一系列事務的歷史(這是從數據文件中讀取項目),所以我可以重放它們,但是這需要O(n)個步驟(n =#...)。交易)每次我需要訪問數據。我正在尋找替代品。
謝謝:我已經有了可以重放的操作歷史,但是當然這需要O(n)操作來在任意時間點訪問模型的狀態(需要在點之前重放所有操作有問題) – 2010-06-11 17:22:29