Java中的持久数据结构

时间:2011-07-01 12:38:48

标签: java data-structures open-source persistence

对于某些(可能很大的)数据结构,我需要Java中的持久存储,例如:

  • 整数,双数,布尔的密集和稀疏矩阵
  • 带有标记节点和边的有向图
  • 二叉树
  • maps:string-> string,string-> integer(快速检索具有最大值的键)
  • 整数或字符串集

我不介意每个数据结构是否有单独的存储,只要所有存储都具有相似,一致的接口。

我需要能够“远程”有效地修改数据结构,也就是说,无需将整个结构提取到RAM,修改它并存储回来。示例操作:将键值放在映射中,从树中删除节点,在图中修改节点的标签,向集合中添加值。

如果可以从其他编程语言(尤其是Python)轻松访问这些存储,那将是非常好的。我正在考虑后端的RESTful服务以及Java和Python中的客户端API。

动机:我需要处理大量文档并对其进行各种分析。我想探索各种方法并创建快速原型(因此我需要简单易用的API)。

我想我不是第一个需要这种功能的人,我不想在这里重新发明轮子。这让我想到了一个问题:哪些开源解决方案允许在Java中使用易于使用的数据结构持久性?

提前致谢!

4 个答案:

答案 0 :(得分:1)

您是否考虑使用MongoDB之类的内容?对于你所寻找的东西来说它看起来很完美,并且它吸收了大量的动力。它是一个高性能,无架构的面向文档的数据库,我喜欢它基于json的事实!看看吧!

Here是很好的Java教程。

答案 1 :(得分:0)

ObjectOutputStream和ObjectInputStream怎么样?

答案 2 :(得分:0)

很难连接所有这些但你可以使用JPA进行双向映射和延迟加载。

答案 3 :(得分:0)

这实际上取决于你的使用模式,即有多少次读取,多少次写入,多少次等等,但我建议你只使用sql直到你证明它不起作用。