所以我试图在方法中返回数组的内容。 让我们假设这个数组被称为x,它已经有了值。
public int[] returnArray()
{
return x;
}
现在,我知道这将返回数组的内存地址。所以我尝试了之前看到的这种解决方法:
public int[] returnArray()
{
int[] y=new int[x.length]
for (int i=0;i<x.length;i++)
{
y[i]=x[i]
}
return y;
}
现在,这也是返回数组的内存地址。对此没有解决方法吗?
答案 0 :(得分:2)
return x;
返回对数组的引用,这使您可以访问数组的所有元素。
您可能认为您获得了“数组的内存地址”,因为您尝试使用System.out.println(returnArray());
打印数组,但不显示数组的元素。您应该使用System.out.println(Arrays.toString(returnArray()));
答案 1 :(得分:1)
除了地址之外,您不能返回任何内容,因为您可以返回的只是一个值。数组通常包含多个值。
例如,您可以返回数组位置0的值,但不能同时返回所有不同的值。
任何发布“解决方法”的人显然都不知道。这将创建另一个数组,并将原始数组中的内容复制到新数组中,然后返回 数组的地址。
但是,您不需要返回数组的元素,数组引用允许您访问元素。
returnArray()[0]
获取返回数组的第一个元素(引用)。
要打印元素,您可以迭代数组:
for (int x : returnArray()) {
System.out.println(x);
}