我正在处理的这个特殊问题如下所示:
没有返回类型的ConcatArrays(int [] listA,int [] listB,int [] listC)。1.该方法传递形式数组参数listA和listB,然后返回级联数组listC。2. listC的第一部分包含与listA的相应元素相同的元素,第二部分包含与listB相同的元素。listC的长度为listA.length + listB.length。
这就是我所拥有的,显然它是行不通的。如果没有返回类型/删除列表c作为第三个参数,是否有可能做到这一点?
public static void ConcatArray(int[] listA, int[] listB, int[] listC)
{
int aLen = listA.length ;
int bLen = listB.length;
int cLen = listC[aLen + bLen];
}
编辑:我感谢大家的所有答案,我把它们全部投票给了我。这是一项家庭作业,在重读之后,我相信no return类型是一个错误,因为他在问题1中说了什么。基本上是说要使用参数listB和ListA返回列表c。从那以后他还纠正了其他几种错字。他还为我们的测试类提供了array1和array 2带值,但没有提供array 3。
创建Java数组后,就无法更改其大小。您的代码不起作用,因为数组引用按值传递,而Java没有按引用传递。
返回数组是Java中解决此问题的惯用方式:
public static int[] ConcatArray(int[] listA, int[] listB) {
int[] res = new int[listA.length + listB.length];
...
return res;
}
您可以通过具有所需类型的字段的可变类型通过引用伪造传递,如下所示:
class IntArrayRef {
int[] array;
}
现在,您可以这样编写void
方法:
public static void ConcatArray(int[] listA, int[] listB, IntArrayRef res) {
res.array = new int[listA.length + listB.length];
...
}
但是,如果遇到这种麻烦,则最好返回该数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句