Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并两个数组并缩短合并的数组_Java_Arrays - Fatal编程技术网

Java 合并两个数组并缩短合并的数组

Java 合并两个数组并缩短合并的数组,java,arrays,Java,Arrays,我的家庭作业是“取两个给定的数组(已排序,例如{1,2,3}),创建一个包含两个数组的新数组,然后对其进行排序”,我们有一个函数对数组进行排序,所以这不是问题,但对我来说有点复杂,下面是我的代码: public static Scanner in = new Scanner(System.in); public static void main(String[] args) { int[] a = new int[3]; int[] b = new in

我的家庭作业是“取两个给定的数组(已排序,例如{1,2,3}),创建一个包含两个数组的新数组,然后对其进行排序”,我们有一个函数对数组进行排序,所以这不是问题,但对我来说有点复杂,下面是我的代码:

public static Scanner in = new Scanner(System.in);

    public static void main(String[] args) {
        int[] a = new int[3];
        int[] b = new int[5];
        Help_arr.scan(a);
        Help_arr.scan(b);
        Help_arr.print(peula(a, b));
    }

    public static int[] peula(int[] a1, int[] b1) {
        int[] c = new int[a1.length + b1.length];
        for (int i = 0; i < a1.length; i++)
            c[i] = a1[i];
        for (int i = a1.length; i < c.length; i++){
            c[i] = b1[i];
        }
        Help_arr.sortup(c);
        return c;
    }
2) 打印阵列:

public static void scan(int[] arr1) {
    for (int i = 0; i < arr1.length; i++) {
        System.out.println("Enter number" + (i + 1));
        arr1[i] = in.nextInt();
    }
}
public static void print(int[] arr1) {
    for (int i = 0; i < arr1.length; i++) {
        System.out.print(arr1[i] + " ");
    }
}
public static void sortup(int[] arr1) {
    int i, mini, temp, j;
    for (j = 0; j < arr1.length; j++) {
        mini = j;
        for (i = j; i < arr1.length; i++) {
            if (arr1[i] < arr1[mini])
                mini = i;
        }
        temp = arr1[j];
        arr1[j] = arr1[mini];
        arr1[mini] = temp;
    }
}

此代码存在以下问题:

for (int i = a1.length; i < c.length; i++){
       c[i] = b1[i];
for(int i=a1.length;i

这里的
b1
索引应该以
0
开始,但您是以
a1.length
开始的。您应该为
b1
建立单独的索引,或者使用
b1[i-a1.length]

此代码存在问题:

for (int i = a1.length; i < c.length; i++){
       c[i] = b1[i];
for(int i=a1.length;i

这里的
b1
索引应该以
0
开始,但您是以
a1.length
开始的。您应该为
b1
建立单独的索引,或者使用
b1[i-a1.length]
请查找逻辑

问题在于您对数组b使用了“i”索引

解决方案如下。祝你好运

int[] c = new int[a.length + b.length];
    int i = 0;
    for (i = 0; i < a.length; i++)
        c[i] = a[i];
    for (int j = 0; j < b.length; j++)
        c[i] = b[j];
    }
int[]c=新的int[a.length+b.length];
int i=0;
对于(i=0;i
请查找逻辑

问题在于您对数组b使用了“i”索引

解决方案如下。祝你好运

int[] c = new int[a.length + b.length];
    int i = 0;
    for (i = 0; i < a.length; i++)
        c[i] = a[i];
    for (int j = 0; j < b.length; j++)
        c[i] = b[j];
    }
int[]c=新的int[a.length+b.length];
int i=0;
对于(i=0;i
@DAVIDBALAS1如果Atri解决了您的问题,请接受他的建议answer@GregHilston我知道,但我不能,上面说时间不够。@DAVIDBALAS1如果Atri解决了你的问题,请接受他的回答answer@GregHilston我知道,但我不能,它说没有足够的时间。也许可以在你的解决方案中找到逻辑。您正在将c[i]更改为b[j],但由于前面的for语句,我将是a.length-1。回答不正确很明显。我告诉你逻辑。以下是我为你们提供答案的全部逻辑。int[]a=新的int[3];int[]b=新的int[5];a[0]=1;a[1]=2;a[2]=3;b[0]=4;b[1]=5;b[2]=6;int[]c=新的int[a.length+b.length];int i=0;对于(i=0;i