chicos pensé que casi todo el lenguaje, incluido el arreglo de java pass en la función de referencia (modificable)java array pass by reference no funciona?
pero de alguna manera no funciona aquí. y el testArray sigue siendo 1,2,3 con tamaño de 3
lo suficientemente extraño, cuando si cambio el resultado [i] = 2 a a [1] = 2; funciona . pasó por referencia
¿Qué hay de malo con este código?
al final, tuve un = resultado; (que actualiza el a). el resultado fue eliminado de la pila. es por eso que todavía llegar al a original?
estoy confundido.
gracias
class Test
{
public static void main(String[] args)
{
int[] testArray = {1,2,3};
equalize(testArray, 6);
System.out.println("test Array size :" + testArray.length);
for(int i = 0; i < testArray.length; i++)
System.out.println(testArray[i]);
}
public static void equalize(int[] a, int biggerSize)
{
if(a.length > biggerSize)
throw new Error("Array size bigger than biggerSize");
int[] result = new int[biggerSize];
// System.arraycopy(a, 0, result, 0, a.length);
// int array default value should be 0
for(int i = 0; i < biggerSize; i++)
result[i] = 2;
a = result;
}
}
Por favor explique su lógica en los detalles. ¿Estás tratando de expandir tu tamaño de matriz? Actualmente, su matriz de resultados no copia ningún valor de la matriz original. – Sujee
¿Has visto? –
hejiaming007