Adp*_*Adp 2 java algorithm data-structures
int[][] arr = new int[10000][10000];
for (int x = 0; x < 10000; x++) {
for (int y = 0; y < 10000; y++) {
arr[x][y] = 5;
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我得到一个OutOfMemoryError,那么用于保存该数据量的最佳数据结构是什么(它必须类似于2d数组[row x column]).我还需要搜索它并更改元素.那么什么样的数据结构最适合这种情况呢?
编辑:澄清: - 数组中的所有元素都必须是整数. - 数组中的所有元素都是不同的值.-i不必使用二维数组......我想知道是否有任何更好的数据结构用于存储1亿个整数,而不是二维数组,因此它不会给我一个OutOfMemoryError,因为必须有一个更好的数据结构,具有良好的空间复杂性?
对于内存存储,2D原始数组大小与您可以获得的一样小.
对于绝对最小值,您可以使用1D原始数组并自己进行索引数学运算.
Java int长度为4个字节.一亿英镑约400马力.使用今天的机器,您可能拥有足够的RAM.
您需要确保您的JVM有足够的堆空间来容纳它.您可以使用命令行参数-Xmx来设置最大堆空间量 - 例如,-Xmx768m将最大堆大小设置为768 Mb.
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |