如何有效地保存TreeSet的一部分文件?并重新加载? (Java问题)

时间:2011-03-16 03:22:55

标签: java file-io file treeset

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

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

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

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

感谢您对如何做到这一点的想法!

1 个答案:

答案 0 :(得分:1)

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

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

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