Object类的用法

逝水年华zfx 2011-11-08 04:31:43
声明以下两个方法求两数组是否相等:
public static boolean equals(int[]a,int[]b)
public static boolean equals(Object[]a,Object[]b)
比较数组是否相等会,但是不会用Object类的equals方法
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LucEaspe 2011-11-09
  • 打赏
  • 举报
回复

public static boolean equals(int[]a,int[]b){
if(a.length != b.length){
return false;
}
for(int i=0;i<a.length;i++){
if(a[i] != b[i]){
return false;
}
}
return true;
}
public static boolean equals(Object[]a,Object[]b){
if(a.length != b.length){
return false;
}
for(int i=0;i<a.length;i++){
if(!a[i].equals(b[i])){
return false;
}
}
return true;
}
qybao 2011-11-09
  • 打赏
  • 举报
回复
最简单的就是用Arrays的equals
public static boolean equals(int[]a,int[]b){return Arrays.equals(a,b);}
public static boolean equals(Object[]a,Object[]b){return Arrays.equals(a,b);}

否则就一个一个遍历比较,如3L
若鱼1919 2011-11-09
  • 打赏
  • 举报
回复

public static boolean equals(int[]a,int[]b){
if(a.length != b.length){
return false;
}
for(int i=0;i<a.length;i++){
if(a[i] != b[i]){
return false;
}
}
return true;
}
public static boolean equals(Object[]a,Object[]b){
if(a.length != b.length){
return false;
}
for(int i=0;i<a.length;i++){
if(!a[i].equals(b[i])){
return false;
}
}
return true;
}
beannian 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qybao 的回复:]
最简单的就是用Arrays的equals

Java code

public static boolean equals(int[]a,int[]b){return Arrays.equals(a,b);}
public static boolean equals(Object[]a,Object[]b){return Arrays.equals(a,b);}

否则就一个一个遍历……
[/Quote]
这个,靠谱儿
良才2015 2011-11-09
  • 打赏
  • 举报
回复
有两种情况,请看
第一种:
	public static void main(String[] args) {
int[] a = new int[3];
int[] b = new int[3];
for(int i=0;i<3;i++){
a[i]=i;
b[i]=i;
}
if(a.equals(b)) {
System.out.println(1111111111);
}
else{
System.out.println(222222222);
}
}

这样会输出222222222,表示不等


第二种:
	public static void main(String[] args) {
int[] a = new int[3];
int[] b = new int[3];
for(int i=0;i<3;i++){
a[i]=i;

}
b=a;
if(a.equals(b)) {
System.out.println(1111111111);
}
else{
System.out.println(222222222);
}
}

输出1111111111,表示相等。

这里是值相等和引用地址相同的区别。
不过大多数情况下是比较值是否相等。建议遍历
m540920181 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 x19881216 的回复:]
a.equals(b)
就可以了


equals
public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:

自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true……
[/Quote]

就是这些代码!!!!!111
小绵羊 2011-11-08
  • 打赏
  • 举报
回复
a.equals(b)
就可以了


equals
public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:

自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。


参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
另请参见:
hashCode(), Hashtable

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧