Java中的持久数据结构

Java中的持久数据结构,java,data-structures,open-source,persistence,Java,Data Structures,Open Source,Persistence,对于某些(可能较大的)数据结构,我需要Java中的持久存储,例如: 整数、二重数、布尔数的稠密和稀疏矩阵 带标记节点和边的有向图 二叉树 映射:字符串->字符串,字符串->整数(快速检索具有最大值的键) 整数或字符串集 我不介意每个数据结构是否有一个单独的存储,只要所有存储都有相似、一致的接口 我需要能够“远程”高效地修改数据结构,也就是说,不需要将整个结构提取到RAM、修改它并存储回来。示例操作:在地图中放置键值,从树中删除节点,在图形中修改节点的标签,向集合中添加值 如果这些存储也可以从

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

  • 整数、二重数、布尔数的稠密和稀疏矩阵
  • 带标记节点和边的有向图
  • 二叉树
  • 映射:字符串->字符串,字符串->整数(快速检索具有最大值的键)
  • 整数或字符串集
我不介意每个数据结构是否有一个单独的存储,只要所有存储都有相似、一致的接口

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

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

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

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


提前谢谢

ObjectOutputStream和ObjectInputStream如何?

您是否考虑过使用类似的工具?它看起来非常适合你所寻找的东西,而且它会让你大发雷霆。这是一个高性能、无模式的面向文档的数据库,我喜欢它基于json的事实!看看


这是一个很好的Java教程。

很难将所有这些连接起来,但您可以使用带有双向映射和延迟加载的JPA。

这实际上取决于您的使用模式,即读取次数、写入次数、频率等,但我建议您只使用sql,直到您证明它不起作用为止

谢谢,但这太通用了,不允许在不获取整个对象的情况下修改特定于数据结构的内容。示例:我有一个存储了10M个节点的树,我想添加一个叶子。我不想获取和反序列化整个树,修改它,序列化和存储它。整个树可能无法放入内存中。我想做的是修改持久化树。他提到他不想加载所有数据来更改某些内容,这是一个有趣的想法。我正在考虑使用MongoDB或其他NoSQL解决方案作为一些商店的“低级”后端(当然是地图和集合)。然而,我还需要一个用于数据结构上CRUD操作的一致Java API,我希望有人已经这样做了。我还没有把JPA和MongoDB混合在一起。看起来不太可能是一对。然而;网上有一些关于MongoDB和java的教程。