使用方法调用追加数组

时间:2016-10-15 22:08:04

标签: java arrays

我是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}

非常感谢帮助。感谢。

4 个答案:

答案 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;解决方案可能会破坏这项任务的目的。