Java 交换两个数组的值,创建另一个不重复的数组,并从高到低排序

Java 交换两个数组的值,创建另一个不重复的数组,并从高到低排序,java,arrays,loops,sorting,Java,Arrays,Loops,Sorting,我知道我必须花一段时间或者做一个while循环,但是我不能让它工作。我也尝试了for循环,但它总是给我一个错误,因为我不知道向量的确切长度,因为它们是随机的 inta=(int)(Math.random()*3+1); intb=(int)(Math.random()*3+1); INTC=a+b; int[]arrA=新的int[a]; int[]arrB=新的int[b]; int[]arrC=新的int[c]; for(int i=0;i

我知道我必须花一段时间或者做一个while循环,但是我不能让它工作。我也尝试了for循环,但它总是给我一个错误,因为我不知道向量的确切长度,因为它们是随机的

inta=(int)(Math.random()*3+1);
intb=(int)(Math.random()*3+1);
INTC=a+b;
int[]arrA=新的int[a];
int[]arrB=新的int[b];
int[]arrC=新的int[c];
for(int i=0;i
从数组
arrA
arrB
中获取值,然后插入到
arrC

int index = arrA.length;
for (int i = 0; i < arrA.length; i++) {
    arrC[i] = arrA[i];
}
for (int i = 0; i < arrB.length; i++) {
    arrC[i + index] = arrB[i];    
}
Arrays.sort(arrC);
颠倒顺序并存储在
arrD

for(int l = 0; l < arrC.length; l++) {
    arrD[l] = arrC[arrC.length - (l+1)];
}
for(int l=0;l
删除重复项(简化)

Set remove=newlinkedhashset();
对于(int i=0;i

删除重复项(常用)

int index2=0;
对于(int i=0;i
arrC中没有插入任何内容,因为我不知道如何插入,我尝试使用a for将a[x]与B[x]进行比较,如果有人比a[x]低,则将其放入arrC[x],但它不起作用关于
int[]arrC=ArrayUtils.addAll(arrA,arrB)
而不是第一个块?@Blogger这在
Array
上不起作用,只在
ArrayList
上起作用。有没有办法在不使用该方法的情况下删除副本?我在我的生活中没有看到这一点class@kuroky您可以将每个值与数组中的所有其他值进行比较,但这将花费大量时间(编写代码和性能)。
Set<Integer> remove=new LinkedHashSet<Integer>();
for(int i = 0;i < arrD.length;i++){
    remove.add(arrD[i]);
}
int index2 = 0;
for (int i = 0; i < arrD.length; i++) {
    for (int k = 0; k < arrD.length; k++) {
        if (arrD[i] != arrD[k]) {
            arrE[index2] = arrD[i];
            index2++;
        }
    }
}