public class lalak
{
public static void m1(int[] array)
{
array= new int[]{1,2,3,4,5};
System.out.println(array[2]);
}
public static void main(String[] args)
{
int[] array = {1,1,1,1,1};
m1(array);
System.out.println(array[2]);
}
}
why answer is 1, not 3?
我期望程序打印3,但我得到1作为输出。我认为方法会改变我原来的数组,但它原来是假的。有人知道这是为什么吗?
你正在创建一个新的数组,这使得对主数组的引用是多余的。你也可以像Jon Skeet说的
那样替换第一行或者另一种选择是,让m1返回一个数组并将其分配给main
中的数组public class lalak
{
public static int[] m1(int[] array)
{
array= new int[]{1,2,3,4,5};
System.out.println(array[2]);
}
public static void main(String[] args)
{
int[] array = {1,1,1,1,1};
array = m1(array);
System.out.println(array[2]);
}
}