Java 使数组元素为空

Java 使数组元素为空,java,arrays,null,Java,Arrays,Null,这两件事是一样的吗 for(int i=0; i<array.length; i++){ array[i] = null; } 不,第一个将使数组的每个元素都为null,数组的长度仍然是array.length,第二个将数组变量设置为null。一点也不 在第一种情况下,将数组中的所有引用设置为null 在第二种情况下,您将对数组本身的引用设置为null。一个小片段来显示差异: // declare a array variable that can hold a reference. S

这两件事是一样的吗

for(int i=0; i<array.length; i++){
array[i] = null;
}

不,第一个将使数组的每个元素都为null,数组的长度仍然是array.length,第二个将数组变量设置为null。

一点也不

在第一种情况下,将数组中的所有引用设置为null


在第二种情况下,您将对数组本身的引用设置为null。

一个小片段来显示差异:

// declare a array variable that can hold a reference.
String [] array;

// make it null, to indicate it does not refer anything.
array = null;

// at this point there is just a array var initialized to null but no actual array.

// now allocate an array.
array = new String[3];

// now make the individual array elements null..although they already are null.
for(int i=0;i<array.length;i++)
{
    array[i] = null;
}
// at this point we have a array variable, holding reference to an array, 
// whose individual elements are null.
//声明一个可以保存引用的数组变量。
字符串[]数组;
//将其设为null,表示它不引用任何内容。
数组=空;
//此时,只有一个初始化为null的数组变量,但没有实际的数组。
//现在分配一个数组。
数组=新字符串[3];
//现在将单个数组元素设为null..尽管它们已经为null。

对于(inti=0;iNo),这是不一样的

事实上,要使第一段代码正确运行,数组变量应该像这样声明和初始化(例如)

这将创建一个由5个元素组成的数组,每个元素都有一个
null

一旦你有了这个,在第一个例子中,你要做的是给每个
数组[i]
元素分配一个空值。
array
将不会是
null
。所以你应该有这样的东西

数组->

  • 数组[0]->null
  • 数组[1]->null
  • 数组[2]->null
  • 数组[3]->null
  • 数组[4]->null
通过执行
array=null
可以说明数组不再引用该元素数组


array->null

两者都不起作用!如果您有一个整数数组,并且试图将元素设为null,则无法执行此操作 arr[i]=null;
因为整数不能转换为null。

在第一条语句
array=null;
之后,您的语句“…只是对字符串的引用…”不太正确。这确实是一个可以保存引用的变量,但没有引用。只有一个引用用于数组变量。
// declare a array variable that can hold a reference.
String [] array;

// make it null, to indicate it does not refer anything.
array = null;

// at this point there is just a array var initialized to null but no actual array.

// now allocate an array.
array = new String[3];

// now make the individual array elements null..although they already are null.
for(int i=0;i<array.length;i++)
{
    array[i] = null;
}
// at this point we have a array variable, holding reference to an array, 
// whose individual elements are null.
Object[] array = new Object[5];