创建一个长数组

我正在尝试在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 (数组容量)必须是一个不longinteger

你有同情心。 每次内存大小增加时我们都会经历这个问题。 有一种奇怪的期望, 这个时间数组大小不需要与内存大小并行增加。

您最好的解决方案可能是使用long get(long index)void set(long value, long index)方法编写自己的类。 它可以将数据表示为long [10] [1000000000],并封装自然长索引和实际int索引对之间的映射。