Java中怎么比较两个数组相同位置的数值是否相同。

比如说[4,6,7]和 [7]这两个数组,怎样处理使第二个数组和第一个数组一样?我的思路:
for(int i=0;i<list1.size();i++){
for(int j=0;j<liset2.size();j++){
if(list1.get(i)!=liset2.get(i)){
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}

直接通过下标来分别找到2个数组中的值,然后比较就行了。
如果要整个数组的值和另外一个数组的比较,就用循环挨个比较。
注意数组里面的值得类型,如果是引用类型的数值,比如String 类型的,建议用.equals()来比较,因为==比较的是栈空间的里面的值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
LZ你想得太多了,直接这样:
for(int i=0;i<list1.size();i++){
list2.get(i)=list1.get(i);
}
或者更直接:
list2=list1
都能实现让“第二个数组和第一个数组一样”的效果。追问

LZ你想得太多了,直接这样:
for(int i=0;i<list1.size();i++){
list2.get(i)=list1.get(i);
}

这个貌似不行?

追答

你先把问题说清楚吧,你的目的是什么,如果只是想list2=list1的话,那就简单了,还有集合没有size()方法,拿长度只能用length

追问

比如这两个数组[4,6,7]和 [7]
就是这两个数组,比较他们相同的位置的值是否相等,如果不相等把第一个数组的这个位置的值插入到第二个数组的相应位置,最终使这两个数组一样。这样做是因为在使第二个数组和第一个数据比较的时候要进行其他操作的。

追答

我刚刚写了一段代码,测试无误,你看一下,希望对你有帮助:
import java.util.ArrayList;
import java.util.List;

public class TestList {

public static void main(String[] ags) {
//定义list1
List list1 = new ArrayList();
list1.add("a");
list1.add("b");
list1.add("c");
//定义list2
List list2 = new ArrayList();
list2.add("d");
list2.add("b");
list2.add("f");
list2.add("g");
System.out.println("修改前:");
System.out.println("list1=:"+list1);
System.out.println("list2=:"+list2);
//开始替换
for(int i=0;i<list2.size();i++){
if(i<list1.size()){
if(list1.get(i).equals(list2.get(i))==false){
//如果相同位置不相等,替换
System.out.println("第"+(i+1)+"个位置不同");
list2.set(i, list1.get(i));
}
}else{//如果list2比list1长,把多余的去掉
list2.remove(i);
}
}
System.out.println("修改后:");
System.out.println("list1=:"+list1);
System.out.println("list2=:"+list2);
}
}
======打印结果是:=====
修改前:
list1=:[a, b, c]
list2=:[d, b, f, g]
第1个位置不同
第3个位置不同
修改后:
list1=:[a, b, c]
list2=:[a, b, c]

追问

1

本回答被提问者和网友采纳
第2个回答  2020-01-08
LZ你想得太多了,直接这样:
for(int
i=0;i<list1.size();i++){
list2.get(i)=list1.get(i);
}
或者更直接:
list2=list1
都能实现让“第二个数组和第一个数组一样”的效果。
第3个回答  2011-04-29
我是按照你的思路给你说的,具体实现具体试试就可以了,比如list1和list2
for(int i =0,int j=0;i<list1.size(),j<list2.size();i++,j++){
if(list1.get(i) != list2.get(j)){
list2.addItemAt(j,list1.get(i));
}
}

思路大概是这样的,注意list1和list2千万不能定义成形如数组([]int),应该是ArrayList之类的。追问

是比较相同位置的值是否相等。list1.get(i) != list2.get(j) 这样是用第一个数组的一个值和第二个数组的每个值比较。。

第4个回答  2011-04-30
for(int i=0;i<list1.size();i++){
if(list1.get(i)!=list2.get(i)){
list2.add(i,list1.get(i));
}
}
相似回答