数组不能改变的方法?


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]);  
}
}

最新更新