Ребята, я думал, что почти весь язык, включая массив java pass, используется в качестве ссылочного (модифицируемого)
но почему-то это не работает. и testArray все еще 1,2,3 с размером 3
достаточно странно, если при изменении результата [i] = 2 на [1] = 2; он работает. он прошел по ссылке
что не так с этим кодом?
в конце, у меня был результат =; (которые обновляют а). результат был удален из стека. вот почему все еще добираются до оригинала a?
Я запутался.
спасибо
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;
}
}