Android中的三维数组

时间:2015-10-20 14:07:52

标签: android arrays

我无法在android中创建像素值超过(100,100,3)的3D数组。然而,它正好适用于上面提到的数组文件。

我的代码:

double mat[][][] = new double[400][400][3];
Error:java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack available

然而,

double mat[][][] = new double[100][100][3];

工作正常。我正在使用模拟虚拟机来运行Android应用程序。

1 个答案:

答案 0 :(得分:3)

这可能是记忆。在Android double中需要64位,即8个字节。

您正在创建一个400x400x3的3D阵列,因此大小将为

  

400 * 400 * 3 * 8 = 3.7MB

虽然较小的尺寸将是

  

100 * 100 * 3 * 8 = 234KB

更有可能获得234KB的块大小而不是3.7MB。

Tnx to Luca comment