Java中如何比较两个数组中元素是否相同

2020-11-26 13:36:04 字数 6633 阅读 8269

1楼:匿名用户

import java.util.arrays;

public class test ;

string array2 = ;

arrays.sort(array1);

arrays.sort(array2);

if (arrays.equals(array1, array2)) else

} }

java如何使用for循环实现比较两个数组相同(只要每个元素相同,顺序可以不同)

2楼:春哥

public class ***parearray ;

int b = ;

int c = 0; //作为计数器

if(a.length==b.length) else}else }}

思路:首先判断两个数组长度是否相同,长度相同再进一步判断。

使用嵌套循环,将a数组中的所有数和b数组中的所有数进行对比,并设置一个计数器,每对比成功一次计数器+1,最后对比完成之后如果计数器的值等于了数组长度就说明两个数组是一样,否则不一样。

3楼:

王文/王孜 李建华 ----

java 如何判断一个数组中的任意两个元素是否相等

4楼:匿名用户

举个例子 int shus=;

boolean flag=true;

for(int i=0;i

5楼:匿名用户

like this

int a = ;

int b =a;

for(a1:a)}}

6楼:yongheng胡

对数组双层循环进行判断呀

7楼:匿名用户

如果是java内置的基础数据类型,可以直接是有equals比较。

如果是用户自定义数据类型,需要重写equals和hashcode。

8楼:牢语蓉寻冰

那要看数组元素是干什么了

比如是基础类型,如int,long

byte

等等,那肯定都不是空,默认为0

如果是object,直接判断就可以了,比如object

objs

=new

object[2];if(objs[0]

==null)

9楼:

如后说的是值,那么把值取出来,然后比较,int 型用==,string型用.equals就可以比较出值。如果是指的其它,那么就是不相同的。

10楼:匿名用户

一个方法 3个参数

外加几个正则搞定

怎么比较两个数组中的元素(java)

11楼:匿名用户

比较的方法需要你自己写,最好是些在那个需要进行比较的类中,也就是你自己定你想要以他的什么属性来作为比较标准。

public class ***pareperson

//system.out.println("这两群人的年龄是否对应相同? "+***pare(p1,p2));

system.out.println("这两群人的姓名是否对应相同? "+***pare(p1,p2));

}public static boolean ***pare(person p1, personp2)

else if(age < p.getage())

else return 0;

}*/public int ***pareto(person p)}

12楼:方杭尽

//person.java

public class person

public string getname()

public void setname(string name)

//这里实现了该类的equals方法,

//目的用于将判断两个对象是否相等转换成判断两个对象的name是否相等

//也就是说如果两个对象的name相等,那这两个对象就相等。

public boolean equals(object obj) else if(this.name!=null && p.name!=null)else}}

你要的写法在这里

import java.util.arrays;

//test.java

public class test

//判断两个数组里的元素是否依次对应相等,

//就用系统的这个方法

//这个方法会使用各个元素的equals方法进行比较,最后得出结论

boolean b = arrays.deepequals(p1, p2);

system.out.println(b);

//用for循环进行比较做法如下

b=true;

for (int i = 0; i < p1.length; i++)

//如果重写equals方法了,这么写

if(!p1[i].equals(p2[i]))

}//打印出结果

system.out.println(b);}}

13楼:匿名用户

楼主,你的数组什么类型啊?

for(int i = 0;i

java中如何比较两个数组确定是否相等?

14楼:南非乌雀

两个方法,第一个比较常规,第二个特别适合字符数组的判断。

方法一:

char a = ;

char b = ; //对a, b 数组赋值操作if (a.length != b.

length) else}system.out.println("两个数组不相等");

}方法二:

char a = ;

char b = ; //对a, b 数组赋值操作string sa = string.valueof(a);

string sb = string.valueof(b);

if( sa.equals(sb) )

system.out.println("两个数组相等");

else

system.out.println("两个数组不相等");

java中判断两个数组是否相等的方法

15楼:匿名用户

两个方法,第一个比较常规,第二个特别适合字符数组的判断。

方法一:

char a = ;

char b = ; //对a, b 数组赋值操作if (a.length != b.

length) else} system.out.println("两个数组不相等");

}方法二:

char a = ;

char b = ; //对a, b 数组赋值操作string sa = string.valueof(a);

string sb = string.valueof(b);

if( sa.equals(sb) )

system.out.println("两个数组相等");

else

system.out.println("两个数组不相等");

16楼:slim丶风

|还是用arrays.equals吧

==是比较地址

equals主要用来单个比较

下面是 arrays.equals方法的源码public static boolean equals(long a, long a2)

17楼:匿名用户

使用equals方法来进行判断。

stringa=newstring("abc");

stringb=newstring("abc");

if(a.equals(b))else

equals比较的是内容,只要值相同就是true。

java如何在遍历两个数组后,来判断数组的每个元素内容是否一样

18楼:雪飞潇潇

思路1: (好理解, 但效率较低,特别是数组较大时)

数组比较每个元素是否相等:

1. 如果数组为null 或者数组的元素个数不相等 , 那么返回false

2. 先把数组排序, 然后逐一比较, 如果有一个元素不相等就返回false. 否则返回true

思路2: (**稍微多点,但是效率高点)

前面部分和思路1 都一样

只是第2步, 为了省去排序的性能和时间的浪费, 添加两个boolean数组来对应之前的数组,用于标记哪些数字已经使用过了,下次就不要使用了. 虽然**更多,但是当数组比较长时. 这种方法效率还可以

思路3: (只算一种思路, 也能实现,就不给出具体**了)

使用集合hashmap(k,v) k存放元素,v存放出现的次数

思路1 参考**

importjava.util.arrays;

publicclassarraystest;

intary2=;

intary3=;

booleanb=***pareary(ary1,ary2);

system.out.println(b?"ary1和ary2数组元素都相等":"ary1和ary2数组元素不相等");

booleanb1=***pareary(ary2,ary3);

system.out.println(b1?"ary2和ary3数组元素都相等":"ary2和ary3数组元素不相等");

}publicstaticboolean***pareary(intary1,intary2)

if(ary1==ary2)

/**先排序,再逐一比较

*///为了排序不会影响原始的数组顺序,所以把2个数组复制出来

intt1=newint[ary1.length];

system.arraycopy(ary1,0,t1,0,ary1.length);

intt2=newint[ary2.length];

system.arraycopy(ary2,0,t2,0,ary2.length);

//排序

arrays.sort(t1);

arrays.sort(t2);

for(inti=0;i

}returntrue;//前面都没有返回,说明元素都相等,这里就返回true}}

思路二publicclassarraysdemo;

intary2=;

intary3=;

booleanb=***pareary(ary1,ary2);

system.out.println(b?"ary1和ary2数组元素都相等":"ary1和ary2数组元素不相等");

booleanb1=***pareary(ary2,ary3);

system.out.println(b1?"ary2和ary3数组元素都相等":"ary2和ary3数组元素不相等");

}publicstaticboolean***pareary(intary1,intary2)

if(ary1==ary2)

booleanb1=newboolean[ary1.length];

booleanb2=newboolean[ary1.length];

for(inti=0;i

inttemp=ary1[i];

for(intj=0;j

if(temp==ary2[j])

}if(flag==false)

}returntrue;//经历上面重重艰难险阻,都没有返回,那么说明两数组的元素内容相同了,返回true}}

拓展注意,关于null这个小问题,多写点

每个人理解题目不一样, 题目要求数组每个元素相同,所以,我觉得数组就不能为null了.但是元素个数可以为0

所以 **如下

.....

//如果数组为null或者数组的元素个数不相等,直接返回false

if(ary1==null||ary2==null||ary1.length!=ary2.length)

//如果两个数组哈希值一样,那么直接返回true,就不必去循环比较了

if(ary1==ary2)

....

当然,有的人认为,两个数组都是null 也可以返回true, 写法如下

......

//null也是等于null的

if(ary1==ary2)

if(ary1!=null&&ary2!=null)

}else

.....

以上 ~抛砖引玉!

java如何判断数组中的任意两个元素是否相等

1楼 匿名用户 举个例子 int shus boolean flag true for int i 0 i 2楼 匿名用户 like this int a int b a for a1 a 3楼 yongheng胡 对数组双层循环进行判断呀 4楼 匿名用户 如果是java内置的基础数据类型,可以直接...

java中判断两个数组是否相等的方法是什么

1楼 slim丶风 还是用arrays equals吧 是比较地址 equals主要用来单个比较 下面是 arrays equals方法的源码public static boolean equals long a long a2 java中判断两个数组是否相等的方法 2楼 匿名用户 两个方法,第一个...

在java中怎么表示数组等于另外两个数组相加之后

1楼 育知同创教育 可以创建一个数组,并赋值给另外一个数组。 如下 int a int b a 这样就能实现两个数组相等。 2楼 府翊费翠柏 你说的不太明白 如果3个数组同样大小,就是说你要的是两个数组各元素的和保存到第三个数组里。 如果你要的是连接两个数组,那么第三个数组的长度应该是数组1 siz...