删除java中字符串的2D数组中的所有数据

删除java中字符串的2D数组中的所有数据,java,string,multidimensional-array,Java,String,Multidimensional Array,我有字符串数组str[10][3],它充满了值。 现在我想将其设为空,即删除str的所有值。 我已经将str定义为static,并且我希望从同一个包中的另一个claas中清空此字符串。 我可以在这里使用null 请提出一些建议。谢谢str=newstring[10][3]将为strstr=新字符串[10][3]分配一个空的2D数组将为str分配一个空的2D数组。当然,您可以使用null,但首先想知道您是否真的需要将它们置零,因为null值通常会产生问题并需要特殊处理。您可以使用空字符串“”,以避

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


请提出一些建议。谢谢

str=newstring[10][3]
将为
str
str=新字符串[10][3]分配一个空的2D数组
将为
str

分配一个空的2D数组。当然,您可以使用
null
,但首先想知道您是否真的需要将它们置零,因为null值通常会产生问题并需要特殊处理。您可以使用空字符串
“”
,以避免出现
NullPointerExceptions
问题

只需将一个新数组重新分配给同一个变量即可,Java将负责收集垃圾数据:

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

当然,您可以使用
null
,但首先想知道您是否真的需要将它们置零,因为null值通常会产生问题并需要特殊处理。您可以使用空字符串
“”
,以避免出现
NullPointerExceptions
问题

只需将一个新数组重新分配给同一个变量即可,Java将负责收集垃圾数据:

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

只要不是基元类型(int、char、boolean等)或只读值,就可以将值设置为null。我想他们两个都不是,所以答案是肯定的

因此,解决办法是:

str = null;
如果您想用新值填充结构,可以使用

str = new String[10][3];
但是我不明白你为什么要这么做,这不是因为你不需要数据,你应该把它处理掉。此外,在新的
str
中还有数据(初始
null
-字符串)。但是,如果您不想将新数据存储到结构中,那么这样做没有问题。这种范式有时被称为“懒惰”。它的意思是:“除非你必须做,否则不要做任何事”


通过设置
null
数据不会立即消失。它被安排由垃圾收集器移除。一种仅在某些低频率下运行的程序,或当程序需要内存时运行的程序。在这种情况下,它会将内存标记为空闲,以便重新使用。

只要不是基元类型(int、char、boolean等)或只读值,就可以将值设置为null。我想他们两个都不是,所以答案是肯定的

因此,解决办法是:

str = null;
如果您想用新值填充结构,可以使用

str = new String[10][3];
但是我不明白你为什么要这么做,这不是因为你不需要数据,你应该把它处理掉。此外,在新的
str
中还有数据(初始
null
-字符串)。但是,如果您不想将新数据存储到结构中,那么这样做没有问题。这种范式有时被称为“懒惰”。它的意思是:“除非你必须做,否则不要做任何事”


通过设置
null
数据不会立即消失。它被安排由垃圾收集器移除。一种仅在某些低频率下运行的程序,或当程序需要内存时运行的程序。在这种情况下,它会将内存标记为空闲,以便重新使用。

您是否尝试过删除对数组的引用(
str=null
),或者遍历每个元素并将其设置为null?为什么要删除所有字符串?你还会用它们吗?对于您的问题,可能有更好的解决方案,而不是将它们全部设置为
null
(您可以这样做)。@Makoto和Deco在重用它们之前,我已检查字符串是否为空,因此必须将它们设置为空。您是否尝试过删除对数组的引用(
str=null
),或者遍历每个元素并将其设置为
null
?为什么要删除所有字符串?你还会用它们吗?对于您的问题,可能有更好的解决方案,而不是将它们全部设置为
null
(您可以这样做)。@Makoto和Deco在重用它们之前,我已检查字符串是否为空,因此必须将它们设置为空。@adrian我不希望字符串标记为垃圾收集,我只想重新使用它们,在重新使用它们之前,我必须确认字符串为空。@adrian我不希望字符串标记为垃圾收集,我只想重新使用它们,在重新使用它们之前,我必须确认字符串为空。。