如何在不创建新的情况下减少阵列大小?

ipr*_*ant 5 java arrays resize runtime

我正在使用数组存储一种对象.我创建了一个固定大小的数组

int arr[]=new int[n];
Run Code Online (Sandbox Code Playgroud)

现在处理完这个数组之后,我想从这个数组释放高达75%的内存(现在只有n/4个元素是有用的).所以我的问题是,因为n非常大并且我希望不占用更大的内存而不是有用的,如何在运行时减少数组的大小而不复制到大小为n/4的新数组(甚至是否可能?).

Sur*_*tta 9

这是不可能的.初始化后,无法更改数组的长度.

您可以做的是创建另一个具有合适大小的数组,并使这个大型数组符合垃圾收集器的条件.

ArrayList如果您被允许这样做,最好使用.