使数组元素为null

时间:2010-02-03 03:23:19

标签: java arrays null

这两件事情是一样的吗?

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

array = null;

5 个答案:

答案 0 :(得分:17)

显示差异的小片段:

// 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.

答案 1 :(得分:8)

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

答案 2 :(得分:5)

不,它不一样。

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

Object[] array = new Object[5];

这将创建一个包含5个元素的数组,每个元素的值都为null

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

array - &gt;

  • array [0] - &gt;空
  • array [1] - &gt;空
  • array [2] - &gt;空
  • array [3] - &gt;空
  • array [4] - &gt;空

通过执行array = null,您说数组不再引用该元素数组。现在你应该

数组 - &gt;空

答案 3 :(得分:0)

完全没有。

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

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

答案 4 :(得分:0)

它们都不会起作用!如果你有一个整数数组,并且你试图使一个元素为null,那么你就无法做到  ARR [I] = NULL; 因为整数不能转换为null。