比如说[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)){
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}
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
本回答被提问者和网友采纳是比较相同位置的值是否相等。list1.get(i) != list2.get(j) 这样是用第一个数组的一个值和第二个数组的每个值比较。。