从java中删除二维数组字符串中的所有数据

时间:2012-03-15 04:47:05

标签: java string multidimensional-array

我有字符串数组str[10][3],它充满了值。 现在我想让它变空,即。删除str的所有值。 我已将str定义为静态,我也希望从同一个包中的另一个claas中清空此字符串。 我可以在这里使用null吗?

Plz建议某种方式。感谢

3 个答案:

答案 0 :(得分:3)

当然,您可以使用null,但首先想知道您是否真的需要对它们进行无效化,因为空值通常会产生问题并需要特殊处理。您可以使用空字符串""来避免NullPointerExceptions出现问题。

只需将一个新数组重新分配给同一个变量就行了,Java会关注收集数据:

ClassName.str = new String[10][3];

答案 1 :(得分:0)

str = new String[10][3];会将一个空的2D数组分配给str

答案 2 :(得分:0)

只要不是基本类型(int,char,boolean,...)或只读值,就可以将值设置为null。我认为它们都不是,所以答案是肯定的。

所以解决方案是:

str = null;

如果您想用新值填充结构,可以使用

str = new String[10][3];

然而我不明白为什么你应该这样做,这不是因为你不需要你应该摆脱它的数据。此外,在新的str中还有数据(最初的null - 字符串)。但是如果你不想将新数据存储到结构中,那么这样做是没有问题的。这种范式有时被称为“懒惰”。它意味着:“除非你绝对不得不做任何事情”

通过设置null,数据不会立即消失。它是由垃圾收集器删除的。只运行在某个低频率或程序需要内存的程序。在这种情况下,它会将内存标记为空闲,以便可以重复使用。