创建一个长数组
我正在尝试在java中创建一个长数组,但是eclipse正在向我显示一个错误,如下所示:
以下是我的代码:
我该如何解决这个问题?
我不能在java中创建一个长大小的数组?
多头arrays很好: long[]
。 但是所有 数组都是int
indexed。 因此,只需在方法参数声明中将long n
更改为int n
,即可全部设置。
对于索引,您必须使用int
但不能long
我需要一个10 ^ 9元素的数组
您可以使用int
值创建一个十亿的数组。 使n
成为一个int,你可以使用new long[n]
创建一个数组new long[n]
注意:这将使用8 GB的堆。
由于您使用公式构建所有元素,因此您应该能够动态地提供所有值。 即创建一个“虚拟”数组的组件,这将节省您必须生成所有数组。
我指出这一点的原因是,如果k
很小,第二个循环最多可能需要几分钟,或者很容易需要几天。
顺便说一句:我看不到所有代码,但看起来你永远不需要超过k+1
值,可以分配一次而不是nk
次。
n
(数组容量)必须是一个不long
的integer
你有同情心。 每次内存大小增加时我们都会经历这个问题。 有一种奇怪的期望, 这个时间数组大小不需要与内存大小并行增加。
您最好的解决方案可能是使用long get(long index)
和void set(long value, long index)
方法编写自己的类。 它可以将数据表示为long [10] [1000000000],并封装自然长索引和实际int索引对之间的映射。