如何在返回数据的同一行初始化新的int数组



我知道,如果你想返回存储在变量中的东西,只需返回所述变量即可:

int jellyfish = 7;
return jellyfish;

如果你只想返回与水母没有任何关系的数字7,你可以写:

return 7;

但是,对于数组来说,这怎么可能呢?到目前为止,我声明了要返回其值的数组,然后直接在下一行中返回该数组,但这感觉就像使变量"一样笨拙;水母";当代码只打算返回7时,位于返回行上方。就像我会编码:

public int[] make2(int[] a, int[] b) {
int[] result = new int[2];
if (a.length >= 2) {
result[0] = a[0];
result[1] = a[0];
return result;
}
return b;
}

尽管感觉写这样的东西会简单得多:

public int[] make2(int[] a, int[] b) {
int[] result = new int[2];
if (a.length >= 2) {
return {a[0], a[1]}; // <--- changed line
}
return b;
}

我确信存在类似的东西,但到目前为止,我测试过的任何东西都不会让我返回数组信息,而不在返回语句之前将其放入新的数组变量中。有没有一种我不知道的方法可以做到这一点,或者这是Java中一个我无能为力的固有问题?

您可以这样尝试。

public int[] make2(int[] a, int[] b) {
if (a.length >= 2) {
return new int[]{a[0], a[1]}; // <--- changed line
}
return b;
}

让我们循序渐进。你知道你是如何创建一个新的整数数组的,因为你是在这里的代码段中创建的

int[] result = new int[2];

然后你必须知道,有一种叫做数组初始化器的东西,它可以让你在创建时初始化数组值。例如:

int[] result = new int[]{ 1, 2, 3 };

因此,你的问题的解决方案是(结合这些知识(如下:

return new int[]{ a[0], a[1] };

其创建并返回包含a[0]a[1]的值的新的大小为2的整数数组。

最新更新