Java中怎么比较两个数组相同位置的数值是否相同。
答案:7 悬赏:80 手机版
解决时间 2021-03-16 20:50
- 提问者网友:放下
- 2021-03-16 14:37
Java中怎么比较两个数组相同位置的数值是否相同。
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-03-16 15:39
直接通过下标来分别找到2个数组中的值,然后比较就行了。
如果要整个数组的值和另外一个数组的比较,就用循环挨个比较。
注意数组里面的值得类型,如果是引用类型的数值,比如String 类型的,建议用.equals()来比较,因为==比较的是栈空间的里面的值。
如果要整个数组的值和另外一个数组的比较,就用循环挨个比较。
注意数组里面的值得类型,如果是引用类型的数值,比如String 类型的,建议用.equals()来比较,因为==比较的是栈空间的里面的值。
全部回答
- 1楼网友:底特律间谍
- 2021-03-16 21:55
要想一样直接arrayCopy啊,不懂你到底想要什么追问因为在比较的时候,还要进行其他操作。
- 2楼网友:不想翻身的咸鱼
- 2021-03-16 21:02
这样做是不可以的,数组一旦初始化,其大小就不能在改变了。追问list吧!
- 3楼网友:大漠
- 2021-03-16 19:39
我是按照你的思路给你说的,具体实现具体试试就可以了,比如list1和list2
for(int i =0,int j=0;i if(list1.get(i) != list2.get(j)){
list2.addItemAt(j,list1.get(i));
}
}
思路大概是这样的,注意list1和list2千万不能定义成形如数组([]int),应该是ArrayList之类的。追问是比较相同位置的值是否相等。list1.get(i) != list2.get(j) 这样是用第一个数组的一个值和第二个数组的每个值比较。。
for(int i =0,int j=0;i
list2.addItemAt(j,list1.get(i));
}
}
思路大概是这样的,注意list1和list2千万不能定义成形如数组([]int),应该是ArrayList之类的。追问是比较相同位置的值是否相等。list1.get(i) != list2.get(j) 这样是用第一个数组的一个值和第二个数组的每个值比较。。
- 4楼网友:duile
- 2021-03-16 18:57
if(list1.size()<=list2.size()){
for(int i=0;i if(list1.get(i)!=liset2.get(i)){
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}else{
for(int i=0;i if(list1.get(i)!=liset2.get(i)){
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}
只能让用长的数组赋值给短的 楼主的程序会报越界异常追问//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
如果不想覆盖当前值呢?追答再new一个数组好了
for(int i=0;i
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}else{
for(int i=0;i
//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
}
}
}
只能让用长的数组赋值给短的 楼主的程序会报越界异常追问//如果第一个数组和第二个数组的相同位置的值不同,就把第一个数组的这个位置的值插入到第二个数组的相同位置。
如果不想覆盖当前值呢?追答再new一个数组好了
- 5楼网友:毛毛
- 2021-03-16 17:43
for(int i=0;i if(list1.get(i)!=list2.get(i)){
list2.add(i,list1.get(i));
}
}
list2.add(i,list1.get(i));
}
}
- 6楼网友:雾月
- 2021-03-16 16:34
LZ你想得太多了,直接这样:
for(int i=0;i list2.get(i)=list1.get(i);
}
或者更直接:
list2=list1
都能实现让“第二个数组和第一个数组一样”的效果。追问LZ你想得太多了,直接这样:
for(int i=0;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 if(i 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
for(int i=0;i
}
或者更直接:
list2=list1
都能实现让“第二个数组和第一个数组一样”的效果。追问LZ你想得太多了,直接这样:
for(int i=0;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
//如果相同位置不相等,替换
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯