Java 如何创建一个大数组?

Java 如何创建一个大数组?,java,arrays,long-integer,Java,Arrays,Long Integer,我注意到,当您创建一个数组时,它只能达到int的大小,因为它只接受int。如何创建一个适合长数组大小的数组?目前,Java语言规范将Java数组限制为int索引。(见附件。) 在Java7之前,允许long索引是可行的,但这是一个提议 另一种方法是使用表示支持长索引的元素向量的对象。目前,Java语言规范将Java数组限制为int索引。(见附件。) 在Java7之前,允许long索引是可行的,但这是一个提议 另一种方法是使用表示支持长索引的元素向量的对象。可以使用二维数组 例如 可以使用二维数组

我注意到,当您创建一个数组时,它只能达到int的大小,因为它只接受int。如何创建一个适合长数组大小的数组?

目前,Java语言规范将Java数组限制为
int
索引。(见附件。)

在Java7之前,允许
long
索引是可行的,但这是一个提议


另一种方法是使用表示支持长索引的元素向量的对象。

目前,Java语言规范将Java数组限制为
int
索引。(见附件。)

在Java7之前,允许
long
索引是可行的,但这是一个提议


另一种方法是使用表示支持长索引的元素向量的对象。

可以使用二维数组

例如


可以使用二维数组

例如


根据Java语言规范(请参阅:),您只能使用
int
(或
short
byte
、或
char
,将其视为
int
)对数组进行索引


请记住,使用long索引到数组中的需要假定您将拥有>~2 gig的可用连续内存。根据您的垃圾收集策略和分配的总内存,这可能很难实现。

根据Java语言规范(请参阅:),您只能使用
int
(或
字节
、或
字符
,在这方面被视为
int


请记住,使用long索引到数组中的需要假设您将拥有>~2 Gig的可用连续内存。根据您的垃圾收集策略和分配的总内存,这可能很难实现。

您只能基于多个数组创建一个BigArray类,它将ave具有长参数的set/get方法。

您只能基于多个数组创建一个BigArray类,该类将具有具有长参数的set/get方法。

请参见以下问题:为什么需要如此大的数组?似乎存在设计问题。您可以为每个维度创建Integer.MAX_VALUE-1的多维数组,但这将d将是你的内存的终点。有人想知道为20多亿个元素分配内存会满足什么实际需要。在处理如此大的数据集时,最好的解决方案通常是先用查询过滤数据,然后再处理更小、更高效的结果集。@Drogba起初,我需要这么大的数组,但是然后我想出了另一个选择。现在我只想知道如何使用math.sqrt()方法。有什么想法吗?请看这个问题:为什么需要这么大的数组?似乎存在设计问题。您可以为每个维度执行Integer.MAX_VALUE-1多维数组,但这将是内存的结束。我们想知道为20多亿个元素分配内存会满足什么实际需要。在处理对于如此大的数据集,最好的解决方案通常是先用查询过滤数据,然后处理更小、更高效的结果集。@Drogba起初,我需要这么大的数组,但后来我找到了一个替代方法。现在我只需要弄清楚如何使用math.sqrt()方法。有什么想法吗?仅供参考,这将消耗大约4 EB的内存。祝你好运。这只是一个示例;-)仅供参考,这将消耗大约4 EB的内存。祝你好运。这只是一个例子;-)
Object[][] objects = new Object[Integer.MAX_VALUE][Integer.MAX_VALUE];