¿son estas dos cosas las mismas?haciendo elementos de una matriz nula
for(int i=0; i<array.length; i++){
array[i] = null;
}
y
array = null;
¿son estas dos cosas las mismas?haciendo elementos de una matriz nula
for(int i=0; i<array.length; i++){
array[i] = null;
}
y
array = null;
No, el primero hace que cada elemento de la nula matriz, la longitud de la matriz todavía será Array.length, la segunda se establece la variable de matriz en NULL.
No, en absoluto.
En el primer caso está configurando todas las referencias en su matriz como nulas.
En el segundo caso está configurando la misma referencia a la matriz en nulo.
Un pequeño fragmento para mostrar la diferencia:
// 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.
No, no es lo mismo.
Como cuestión de hecho, para la primera fragmento de código para funcionar correctamente, la variable de matriz debe declararse y se inicializa como esta (por ejemplo)
Object[] array = new Object[5];
Esto crea una matriz de 5 elementos con cada elemento que tiene un valor de null
.
Una vez que tenga esto, en el primer ejemplo, lo que está haciendo es asignar un valor nulo a cada uno de los elementos array[i]
. array
no será null
. Entonces deberías tener algo como esto.
array ->
haciendo array = null
usted está diciendo que la matriz de referencia ya no se s esa matriz de elementos. Ahora usted debería tener
gama -> nula
Ninguno de los dos va a funcionar! Si tiene una matriz de enteros e intenta hacer que un elemento sea nulo, no puede hacer arr [i] = null; porque el entero no se puede convertir a nulo.
Después de la primera instrucción 'array = null;' su instrucción "... simplemente una referencia a una cadena ..." no es del todo correcta. Esto realmente es una variable que puede contener una referencia pero no hay referencia. –
@Kevin: Gracias :) – codaddict
+1: Nice answer –