帮忙修改下,问题是把不同于a数组的b数组中的元素插入a数组的后面?有错误
        public class Unition {
     public static void main(String []args) {
int[]a = new int[]{8,9,3,1,19,30,40};
int[]b = {4,10,7,8,9,3,1};


for(int i=0;i<b.length;i++) {
for(int j=0;j<a.length;j++) {
            if(b[i]!=a[j]) {
                                   int[]tmp= new int[a.length + 1];
                                    tmp[a.length] = b[i]; //追加一个新元素
                                   System.arraycopy(a, 0, tmp, 0, a.length-1); //数组复制
                                   a = tmp; //将追加过元素的数组赋值给原数组,使原数组的长度增加1个单位
             }

}

for(int k=0;k<a.length;k++) {
System.out.print(a[k]+" ");
}
}
}

解决方案 »

  1.   


    public static void main(String[] args) {
    int[]a = new int[]{8,9,3,1,19,30,40};
    int[]b = {4,10,7,8,9,3,1};
    boolean flag = false; //设置标识,标识b中有没有a中的重复元素 for (int i = 0; i < b.length; i++) {
    for (int j = 0; j < a.length; j++) {
    if (b[i] == a[j]) {
    flag = true;
    break;
    }
    }
    if (!flag) {
    int[] tmp = new int[a.length + 1];
    tmp[a.length] = b[i]; // 追加一个新元素
    System.arraycopy(a, 0, tmp, 0, a.length); // 数组复制,a.length不用减一
    a = tmp; // 将追加过元素的数组赋值给原数组,使原数组的长度增加1个单位

    }
    flag = false;
    } for (int k = 0; k < a.length; k++) {
    System.out.print(a[k] + " ");
    }
    }