为了账号安全,请及时绑定邮箱和手机立即绑定

交换两个数组的值,制作另一个没有重复的数组并从高到低排序

交换两个数组的值,制作另一个没有重复的数组并从高到低排序

蓝山帝景 2023-04-19 16:32:26
我知道我必须做一段时间或做 while 循环,但我无法让它工作。我也尝试使用 for 循环,但它总是给我一个错误,因为我不知道向量的确切长度,因为它们是随机的。int a = (int)(Math.random() * 3 + 1);int b = (int)(Math.random() * 3 + 1);int c = a + b;int[] arrA = new int[a];int[] arrB = new int[b];int[] arrC = new int[c];for (int i = 0; i < a; i ++) {    arrA[i] = (int)(Math.random() * 10 + 1);    for (int j = 0; j < b; j ++) {        arrB[j] = (int)(Math.random() * 10 + 1);    }}Arrays.sort(arrA);Arrays.sort(arrB);System.out.println(Arrays.toString(arrA));System.out.println(Arrays.toString(arrB));System.out.println(Arrays.toString(arrC));
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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];    

}

种类arrC


Arrays.sort(arrC);

颠倒顺序并存储在arrD


for(int l = 0; l < arrC.length; l++) {

    arrD[l] = arrC[arrC.length - (l+1)];

}

删除重复项(简化)


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++;

        }

    }

}


查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信