我是JAVA的初学者,所以这个问题没有多大意义:
编写一个名为append的方法,接受两个整数数组作为 参数并返回一个包含结果的新数组 将第二个数组的值附加到第一个数组的末尾。对于 例如,如果数组list1和list2存储{2,4,6}和{1,2,3,4,5} 分别调用append(list1,list2)应该返回一个新的 包含{2,4,6,1,2,3,4,5}的数组。如果有电话的话 一直被追加(list2,list1),该方法将返回一个包含的数组 {1,2,3,4,5,2,4,6}
非常感谢帮助。感谢。
答案 0 :(得分:0)
这是有效的,并且相当不言自明:
int[] append(int[] ary1, int[] ary2) {
int[] arrayOut = new int[ary1.length + ary2.length];
for(int i = 0; i<ary1.length; i++) {
arrayOut[i] = ary1[i];
}
for(int i = ary1.length; i< (ary1.length + ary2.length); i++) {
arrayOut[i] = ary2[i - ary1.length];
}
return arrayOut;
}
答案 1 :(得分:0)
试试这个。
static int[] append(int[]... a) {
return Stream.of(a)
.flatMapToInt(IntStream::of)
.toArray();
}
和
int[] a = {2, 4, 6};
int[] b = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(append(a, b)));
结果:
[2, 4, 6, 1, 2, 3, 4, 5]
您还可以追加三个或更多阵列。
答案 2 :(得分:0)
包伊朗;
公共类ExampleTest {
// https://telegram.me/javalike
public int[] append(int[] array1, int[] array2) {
int array[] = new int[array1.length + array2.length];
int counter = 0;
int flage = 0;
for (int i = 0; i < array.length; i++) {
if (i < array1.length) {
array[i] = array1[counter];
counter++;
} else {
if (flage == 0) {
counter = 0;
flage = 1;
}
array[i] = array2[counter];
counter++;
}
}
return array;
}
public static void main(String[] args) {
ExampleTest t = new ExampleTest();
int a[] = { 2, 4, 6 };
int b[] = { 1, 2, 3, 4, 5 };
int c[] = t.append(b, a);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
}
}
结果: 1 2 3 4 5 2 4 6
答案 3 :(得分:0)
如果您正在寻找最佳性能,可以使用System.arraycopy()
等本机方法而不是循环。
public static int[] append(int[] a, int[] b)
{
int[] merged = new int[a.length + b.length];
System.arraycopy(a, 0, merged, 0, a.length);
System.arraycopy(b, 0, merged, a.length, b.length);
return merged;
}
但是没有想出你自己的&#34;手册&#34;解决方案可能会破坏这项任务的目的。