【发布时间】:2011-04-27 16:37:36
【问题描述】:
我目前有一个电子表格类型的程序,它将其数据保存在 HashMap 的 ArrayList 中。当我告诉你这并不理想时,你无疑会感到震惊。开销似乎比数据本身使用了 5 倍以上的内存。
This question 询问高效的收藏库,答案是使用 Google 收藏。 我的跟进是“哪一部分?”。我一直在阅读文档,但不觉得它可以很好地了解哪些类适合这个。 (我也愿意接受其他图书馆或建议)。
所以我正在寻找可以让我以最小的内存开销存储密集的电子表格类型数据的东西。
- 我的列当前由 Field 对象引用,行由索引引用,值是对象,几乎总是字符串
- 有些列会有很多重复值
- 主要操作是根据某些字段的值更新或删除记录,以及添加/删除/组合列
我知道 H2 和 Derby 等选项,但在这种情况下,我不打算使用嵌入式数据库。
编辑:如果您建议图书馆,如果您能指出其中适用的一两个特定类,我也将不胜感激。虽然 Sun 的文档通常包含有关哪些操作是 O(1)、哪些是 O(N) 等的信息,但我在第三方库中没有看到太多这样的信息,也没有真正描述哪些类最适合什么.
【问题讨论】:
-
这里有一个工具可以帮助您对所选择的任何结构的内存占用进行基准测试:code.google.com/p/memory-measurer,并查看我从中得出的一些示例数据:code.google.com/p/memory-measurer/wiki/…
-
以上链接被破坏
标签: java collections guava