在 Java 中清空数组/处理

2022-08-31 20:04:10

除了循环遍历数组中的每个元素并将每个元素设置为 null 之外,Java/处理中是否有本机函数来简单地清空数组(或销毁它,以便能够将其重新声明为新数组)?


答案 1

Arrays.fill(myArray, null);

并不是说它所做的任何事情与你自己做的不一样(它只是循环遍历每个元素并将其设置为null)。它不是原生的,因为它是执行此操作的纯Java代码,但是如果这就是您的意思,那么它是一个库函数。

这当然不允许你调整数组的大小(到零),如果这就是你所说的“空”的意思。数组大小是固定的,因此,如果您希望“new”数组具有不同的维度,则最好像其他答案所示的那样将引用重新分配给新数组。更好的是,使用像 a 这样的类型,它可以具有可变大小。ListArrayList


答案 2

您只需分配给引用即可。(这将适用于任何类型的数组,而不仅仅是nullints)

int[] arr = new int[]{1, 2, 3, 4};
arr = null;

这将“清除”数组。如果您愿意,还可以为该引用分配一个新数组:

int[] arr = new int[]{1, 2, 3, 4};
arr = new int[]{6, 7, 8, 9};

如果您担心内存泄漏,请不要担心。垃圾回收器将清理数组留下的所有引用。

另一个例子:

float[] arr = ;// some array that you want to clear
arr = new float[arr.length];

这将创建一个初始化为浮点数默认值的新值。float[]