java中的任意数组长度

时间:2013-01-19 17:03:36

标签: java arrays biginteger

有没有办法在java中获取一个比整数数据类型支持的长度更长的数组?

我正在寻找可以使用Java中的大整数进行索引的东西,因为本机支持的数组长度远不如我所需要的那样大。我正在实现的算法。

3 个答案:

答案 0 :(得分:4)

此库对您有用:http://fastutil.dsi.unimi.it/

它说:

  

“...还提供大(64位)数组......”

答案 1 :(得分:3)

Int32为您提供 17 8千兆字节的存储空间。你有这么多记忆吗?

我认为你应该使用稀疏数组,即通过散列索引元素。例如,仅使用HashMap<BigInteger,YourValueType>或使用某些库,例如BigMemory和替代http://terracotta.org/products/bigmemory

答案 2 :(得分:2)

您确定不必更改算法吗? Integer.MAX等于2^31-1,即2147483647,每个int有4个字节给出了我们:8589934588字节的内存(8GB !!!)。