我正在使用TreeSet存储一些信息,以便按照某种顺序对其进行排序。
当TreeSet变得非常大(> 1GB)时,我想将TreeSet中的最小元素保存到文件中,以释放一些RAM。然后,当有更多的空闲RAM时,我希望能够将这些元素重新加载到内存中来处理它们。
我的问题是:是否有一些高效方式将TreeSet的一部分存储到文件中并在以后将它们恢复到内存中?
请注意,当我将元素重新加载到内存中时,它可能是新TreeSet的一部分,也可能是同一个TreeSet的一部分。
感谢您对如何做到这一点的想法!
答案 0 :(得分:1)
你在使用TreeSet做什么?内容经常变化吗?您是想在速度或磁盘使用方面提高效率吗?
与内存相比,读取和写入文件非常慢,如果文件和内存版本经常更改,保持文件和内存版本同步可能会很有挑战性。
使用数据库可能有意义。有几个轻量级数据库,如derby和sqllite,可以嵌入到您的应用程序中。数据库旨在担心内存与文件问题,如果您有> 1Gb的数据,也许组织它是有意义的。