gpt4 book ai didi

java - java中输入1000000000个数组

转载 作者:行者123 更新时间:2023-12-01 07:55:49 25 4
gpt4 key购买 nike

我正在尝试测试一个需要 1,000,000,000 个数组输入的算法。

Scanner scanner = new Scanner(new File("999999998.txt"));
int[] tall = new int[1000000000];
int i = 0;
while (scanner.hasNextInt()) {
tall[i++] = scanner.nextInt();
}

抛出此异常:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

最佳答案

您正在尝试创建一个(大约)4G 的数组,但它太大,无法放入堆中(十亿个 4 字节整数)。

最有可能的是,如果您想这样做,您将需要在 64 位操作系统上运行 64 位 Java(并且可能需要大量物理内存以提高性能),并增加堆大小设置为比默认值大得多的值(例如使用 java -Xmx6g 或类似的值)。

或者,如果您的算法能够对分段数据进行操作,那可能是更好的选择。

因此,如果您要对文件中的项目进行求和,则可以一次将它们带入一千个,以便将它们添加到运行总计中。如果存在大量对各种不同整数的随机访问,那么这并不容易,但在这种情况下,您可以在磁盘上创建数组并使用缓存/LRU 接口(interface)来确保只加载所需的内容任何给定点。

关于java - java中输入1000000000个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250788/

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