【发布时间】:2019-06-29 09:49:27
【问题描述】:
我发现了几个线程如何反转数组。但是,我不明白为什么不能对静态方法和 void 方法使用相同的代码。
有人可以解释以下示例中的区别吗?
对于静态方法我们可以这样写:
public static double[] reverse (double[] a)
{
int n = a.length;
for (int i = 0; i < n/2; i++)
{
double temp = a[i];
a[i] = a[n-(i+1)];
a[n-(i+1)] = temp;
}
return a;
}
但是对于静态的 void 我们有:
public static void reverse (double[] a)
{
for (int i = 0, j = a.length-1; i < j; i++, j--)
{
double temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
【问题讨论】:
-
在第一种情况下,您返回一个数组本身,在第二种情况下,您只需修改现有数组并且不返回任何内容
-
它们只是数组反转的两种不同方式,非void方法返回数组。
-
@Akceptor 两种方法都会修改现有数组。
-
@SteveSmith 是的,但 void 不会返回它。
标签: java arrays methods static void