我正在开发一个 java 项目,该项目将允许用户解析可能有数千行的多个文件。解析的信息将存储在不同的对象中,然后将其添加到集合中。
由于 GUI 不需要一次加载所有这些对象并将它们保存在内存中,因此我正在寻找一种从文件加载/卸载数据的有效方法,以便仅在用户请求时将数据加载到集合中.
我现在只是评估选项。我还考虑过这样一种情况,在将数据子集加载到集合中并将其呈现在 GUI 上之后,重新加载先前观察到的数据的最佳方式。重新运行解析器/填充集合/填充 GUI?或者可能找到一种方法将集合保存到内存中,或者序列化/反序列化集合本身?
我知道如果执行某种数据过滤,加载/卸载数据子集会变得很棘手。假设我过滤了 ID,所以我的新子集将包含来自之前分析的两个子集的数据。这没问题,因为我将整个数据的主副本保存在内存中。
我读过 google-collections 在处理大量数据时既好又高效,并提供了简化很多事情的方法,因此这可能提供一种替代方法,让我可以将集合保存在内存中。这只是泛泛而谈。关于使用什么集合的问题是一个单独且复杂的事情。
你知道这类任务的一般建议是什么吗?我想听听你对类似场景做了什么。
如果需要,我可以提供更多细节。