作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在做一个小任务,我需要在一个数组中存储大约 10 亿个整数。但是,我遇到了堆空间问题。你能帮我解决这个问题吗?
机器详情:Core 2 Duo 处理器,4 GB RAM。我什至尝试过 -Xmx 3072m 。有什么解决方法吗?同样的事情在 C++ 中也有效,所以肯定有办法在内存中存储这么多数字。
下面是我得到的代码和异常:
public class test {
private static int C[] = new int[10000*10000];
public static void main(String[] args) {
System.out.println(java.lang.Runtime.getRuntime().maxMemory());
}
}
异常(exception):线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间 在测试中。(test.java:3)
最佳答案
使用关联数组。键是整数,值是计数(整数被添加到列表中的次数)。
如果分布相对随机,这应该可以为您节省一些可观的空间,如果不是,则更是如此。
关于java - 如何在 Java 数组中存储 1 亿个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666468/
我是一名优秀的程序员,十分优秀!