两个数组中的值,两两对比

比如{1,2,3}和{3,2,1}两个数组,1和3对比,2和2对比,3和1对比。

8个回答

int[] arr1 = {1,2,3};
int[] arr2 = {3,2,1};
for(int i = 0; i < 3; ++i) {
if(arr1[i] == arr2[i]){

}

}

m0_37927455
请战 你想要得到比较结果中较小的值进行计算,只需要再用一个数组把较小的值存起来就可以了,不知道你是不是这个意思?描述有点看不懂。
3 年多之前 回复
qq_30709109
qq_30709109 回复m0_37927455: 嗯嗯,我改过来了,现在有个问题我也发了篇帖子,我贴过来,可以的话请帮我看看。比如一个数组{3,2,1,3,1} ,另一个数组{1,3,2,1,3} 顺序两两比较,如:3和1比较,2和3比较,以此类推,并且优先比较小的数,比如权限1>2>3。 也就是只要对应的两个数其中有较小的数,那么只计算1,而3或2就不参与计算。 这样的数组判断应该怎么写。 我贴出部分代码。if (leftArr != null && leftArr.length != 0 && rightArr != null && rightArr.length != 0) { for (int i = 0; i < leftArr.length; i++) { for (int j = 0; j < rightArr.length; j++) { if (i == j) { if()。。。。。 }
3 年多之前 回复
m0_37927455
请战 回复m0_37927455: 更正一下,数组的长度我用错了,应该是arr1.length
3 年多之前 回复
m0_37927455
请战 for(int i = 0;i < arr1.size();++i){ for(int j = 0; j < arr2.size();++j){ //双重for循环//i,j可分别代表arr1,arr2的下标位置 } }
3 年多之前 回复
m0_37927455
请战 回复qq_30709109: for(int i = 0; i < arr1.size(); ++i){
3 年多之前 回复
qq_30709109
qq_30709109 请问arr[i] == arr2[i] 判断的是值相等吧?我是想判断位置。
3 年多之前 回复
qq_30709109
qq_30709109 哦哦,还有一个问题就是,我的数组长度是不固定的,有可能两个会不一样长,这种时候要怎么办呢,而且偏长的那一个数组也不知道具体多长?
3 年多之前 回复
qq_30709109
qq_30709109 谢谢你,我试试。
3 年多之前 回复

不同长度你咋一一对应比较呢??多出来的不比较?

qq724581322
Nihility/ 回复qq_30709109: 不重复对比的话,把对比过的数据,放入Map里边,然后每次对比前Map.contains("")一下,true的话就跳过
3 年多之前 回复
qq_30709109
qq_30709109 对的,多出来的不进行比较,两个同时有值的时候才比较,刚刚说的这些问题都解决了,现在就只有一个问题,比较的时候是将就小数比较的,比如说,1权限>2权限>3权限。比了1,3就不进行比较了,这种问题可以通过什么手法解决吗?
3 年多之前 回复

int[] arry1;
int[] arry2;
for(int i=0;i<arry1.length;i++){
for(int j=0;j<arry2.length;j++){
if(arry1[i]==arry2[j]){

    }
}

}

int[] arry1;
int[] arry2;
for(int i=0;i<arry1.length;i++){
for(int j=0;j<arry2.length;j++){
if(arry1[i]==arry2[j]){
//输出 i = i;j=j;
}
}
}

先去两个数组的最小长度 然后 for循环?

是这样?

    int[] arr1 = {1,2,3};
    int[] arr2 = {3,2,1};
    List<Integer> list1 = Arrays.asList(arr1);
    List<Integer> list2 = Arrays.asList(arr2);
    // 并集
    // list1.addAll(list2);
    // 交集
    // list1.retainAll(list2);
    // 差集
    // list1.removeAll(list2);
    // 无重复并集
    list2.removeAll(list1);
    list1.addAll(list2);

int[] arr1 = {1,2,3};
int[] arr2 = {3,2,1};
if(arr1.length>arr2.length){//判断arr1长还是2长 成立arr2短
for(int i =0;i<arr2.length;i++){
if(arr1[i]==arr2[i]){
//做自己的判断
}
}
}else{
//arr2长
for(int i =0;i<arr1.length;i++){
if(arr1[i]==arr2[i]){
//做自己的判断
}
}
}

```int[] arr1 = {1,2,3};
int[] arr2 = {3,2,1};
if(arr1.length>arr2.length){//判断arr1长还是2长 成立arr2短
for(int i =0;i<arr2.length;i++){
if(arr1[i]==arr2[i]){
//做自己的判断
}
}
}else{
//arr2长
for(int i =0;i<arr1.length;i++){
if(arr1[i]==arr2[i]){
//做自己的判断
}
}
}


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐