我有一个非常简单的数据结构(基本上是一个包含一些数组和单值的结构),但我需要记录数据结构的历史记录,以便我可以高效地获取数据结构的内容时间。Java:版本化的数据结构?
有没有比较直接的方法来做到这一点?
我能想到的最好的方法是用一些处理所有变异操作的东西封装整个数据结构,将数据存储在functional data structures中,然后对每个变异操作在Map索引中缓存数据结构的副本通过时间排序(例如,具有实时时间的TreeMap作为关键字,或具有突变操作的计数器的HashMap与结合存储在TreeMaps中的一个或多个索引结合实时/滴答计数等映射到突变操作)
任何建议?在一个案例中,我已经有一系列事务的历史(这是从数据文件中读取项目),所以我可以重放它们,但是这需要O(n)个步骤(n =#...)。交易)每次我需要访问数据。我正在寻找替代品。
谢谢:我已经有了可以重放的操作历史,但是当然这需要O(n)操作来在任意时间点访问模型的状态(需要在点之前重放所有操作有问题) – 2010-06-11 17:22:29