用于存储由稀疏标识符检索的大量对象的适当数据结构

时间:2013-09-01 15:24:40

标签: java data-structures

我想我正在寻找一个稀疏数组实现,但我真的需要这在内存使用方面是有效的,并且我的数据的一个特性是实现可以利用的是索引被填充,使得如果存在索引i的值,则索引i-1i+1也可能存在值,如果i的值没有值,则类似,i-1i+1可能没有值。

我正在使用Java,我需要索引类型为long而不是更常见的int,如果这有所不同的话。我有大约5000万个需要存储的对象。我已经研究过Trove4J的TLongObjectHashMap,不幸的是,仅哈希表需要大约1.6GB,我真的需要对此进行改进。

有人能指出我可以针对长期顺序分配的标识符进行优化吗? insert / get的对数性能对我来说是可以接受的,所以也许是基于树的东西?

2 个答案:

答案 0 :(得分:0)

也许您可以使用数据库而不是数组?内存中嵌入式数据库,如h2sql!

答案 1 :(得分:0)

Btree的内存开销很小,所以我会试试。