我可以缩小数组以节省Java中的内存吗?

时间:2014-06-28 21:27:11

标签: java arrays

例如,我有一个二维数组:

1 2 3 4 5

6 7 8 9 10

11 12

它是一个3乘5阵列。但是,在第三行中,我只需要填充两个单元格。其余的是不必要的,但在初始化阵列时会创建它。

我想这样做的原因是我的实际数组行非常长,因此可能会浪费大量内存,因为我只需要在第3行使用两个单元格。

有没有办法在数组填满后缩短第三行以包含两个单元格?

我不确定它是否可能,或者它是最好的方法。谢谢。

1 个答案:

答案 0 :(得分:4)

您无法在java中缩小数组,因为您无法更改其长度,但您可以将二维数组的内部数组设置为不同长度的数组。

int[][] ar = new int[3][];
ar[0] = new int[]{1, 2, 3, 4, 5};
ar[1] = new int[]{6, 7, 8, 9, 10};
ar[2] = new int[]{11, 12};