Java:版本化的数据结构?

前端之家收集整理的这篇文章主要介绍了Java:版本化的数据结构?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的数据结构(基本上是一个包含一些数组和单个值的结构),但是我需要记录数据结构的历史记录,以便我可以在任何时候有效地获取数据结构的内容.

有没有一个比较直接的方法呢?

我可以想到的最好的方法是通过在functional data structures中存储数据来处理所有突变操作的整个数据结构,然后对于每个变异操作,在由时间排序索引的Map中缓存数据结构的副本(例如,具有实时密钥的TreeMap或具有突变操作的计数器的HashMap与存储在TreeMaps中的一个或多个索引相结合实时/刻度计数等到突变操作)

有什么建议么?

编辑:在一种情况下,我已经将历史记录作为一系列事务(这是从数据文件读取项目),所以我可以重播它们,但是这需要每次需要O(n)个步骤(n =#个事务)访问数据.我正在寻找替代品.

解决方法

您应该使用一些不变的永久性数据结构,并且基于结构共享(即,使数据结构的不在版本之间的部分仅存储一次).

我在这里创建了一个这样的数据结构的开源Java库:

http://code.google.com/p/mikeralib/source/browse/#svn/trunk/Mikera/src/mikera/persistent

这些有些灵感来自Clojure持久的数据结构,这也可能适合您的目的(它们也用Java编写).

原文链接:https://www.f2er.com/java/124374.html

猜你在找的Java相关文章