0

我正在使用 TreeSet 来存储一些信息,以便按照某种顺序对其进行排序。

当 TreeSet 变得非常大(> 1GB)时,我想将 TreeSet 中的最小元素保存到文件中,以释放一些 RAM。稍后,当有更多可用 RAM 时,我希望能够将这些元素重新加载到内存中以处理它们。

我的问题是:是否有一些有效的方法可以将 TreeSet 的一部分存储到文件中并稍后将它们恢复到内存中?

请注意,当我将元素重新加载到内存中时,它可能是新 TreeSet 的一部分,也可能是同一 TreeSet 的一部分。

感谢您提供有关如何执行此操作的任何想法!

4

1 回答 1

1

你用 TreeSet 做什么?内容经常变化吗?您是否试图在速度或磁盘使用方面提高效率?

与内存相比,对文件的读取和写入速度非常慢,如果文件和内存版本经常更改,则保持文件和内存版本同步可能具有挑战性。

也许使用数据库是有意义的。有几个轻量级数据库,例如 derby 和 sqllite,可以嵌入到您的应用程序中。数据库旨在担心内存与文件问题,如果您有> 1Gb的数据,那么组织它可能是有意义的。

于 2011-03-16T03:40:35.460 回答