Java压缩集合库

4

是否有Java第三方库提供了可以压缩其组成对象的集合?我尝试过谷歌搜索,但没有找到相关信息。这样的结构对于大型(多达几个G)地图等资源是否有用呢?虽然访问和存储会带来性能惩罚,但对于长期不经常访问的参考资料,这似乎是合理的,不是吗?


2
长期未访问的引用 - 在这种情况下,您不会使用数据库吗? - Jeff
有一些公司正在转向内存数据库,但我理解你的观点。那么,我想也就没有真正的使用案例了吧? - Amir Afghani
是的。这假定您正在使用可靠地转换为和从字节数组的对象,并且进一步属性是对它们进行压缩是值得的。 - Louis Wasserman
3个回答

3
这个的用例基本上是内存数据库的用例,因此您应该深入了解这些内容。
如果您要这样做,您可能需要将任意Java对象序列化为字节,然后将它们反映回类中。不妨使用内存数据库 - 我看不出有什么实际区别,除了Java可能有点高级之外。
请注意,这实际上是有些针对Java的 - 在C语言中,您可以有一个库获取内存并仅压缩它而无需进行任何花哨的东西,但由于Java无法访问内存,因此这种事情有点困难...

2

1

不太可能 - 在大多数情况下,这样的集合并不是非常有用

数据结构通常被设计为针对一组特定的使用模式提供高性能。添加压缩只会增加开销,并减慢它们在主要用例中的速度。特别要注意的是,大多数高效的压缩算法使用回溯到先前看到的数据。这通常与集合类期望的随机访问模式不兼容(即无法高效实现),也与修改集合部分的能力不兼容。

当然,压缩对于顺序访问大块数据以及处理我们需要在较慢的存储和主内存之间移动的非常大的数据量非常有用。但是,我们已经有了称为文件系统和数据库的强大工具 :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接