gpt4 book ai didi

java - java中的大容量数组编程

转载 作者:行者123 更新时间:2023-12-02 03:33:00 24 4
gpt4 key购买 nike

如何在java中声明大小为10^9的数组?。我尝试过数组列表,但问题是我需要找到数组中的最小和最大元素,所以我需要将数组的第0个元素与所有其他元素进行比较数组的元素,我最初需要一些固定大小的数组,这是代码厨师上数组的输入格式所必需的。有人可以帮忙吗?我尝试使用长数组,但它给出了内存不足错误。

最佳答案

Java 数组的最大大小等于 Integer.MAX_VALUE(或者在某些情况下略有不同的值),约为 2.3 * 10^9,因此理论上创建这么大的数组是可行的可能的。然而,由于 10^9 意味着前缀 giga(为了更容易阅读),数组的大小至少为 1GB(使用 byte[] 时)。根据您使用的数据类型,数组可能会占用太多内存(int[] 已经占用 4GB)。

您可以尝试使用 -Xmx 选项增加 JVM 的最大内存(例如,要允许最大 4GB,您可以使用 -Xmx=4g),但是您仍然受到最大可寻址内存(例如 IIRC,32 位 JVM 总共只能寻址最高 4GB)和可用内存的限制。

或者,您可以尝试将阵列拆分到多台机器或 JVM 上,并采用某种分布式方法。或者您可以将数组写入(内存映射)文件并仅将数组的一部分保留在内存中。

但是,最好的方法可能是检查您是否真的需要那么多内存。在许多情况下,使用一些巧妙的算法或结构可以显着减少内存需求。使用什么取决于您最终想要实现的目标。

关于java - java中的大容量数组编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com