关于两个数组equals比较的问题?

BUY 2009-09-17 07:06:27

class Person{
public static void main(Strng[] args){
Person p=new Person();
int[] i1={1,2,3,4};
int[] i2={1,2,3,4};
boolean b=p.equals(i1,i2);
if(b){
System.out.println("The same !");
}else{
System.out.println("They are different !");
}
}
“JDK API中提供了数组比较的方法是equals(int[] a,int[] a2);如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。”
那为什么运行都是false?
高手解释下,在此谢过
...全文
289 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BUY 2009-09-17
  • 打赏
  • 举报
回复
.................
问题解决了
谢谢大家
弘石 2009-09-17
  • 打赏
  • 举报
回复
把楼主的代码按照1楼说的改了一下,结果正确

import java.util.Arrays;

public class Test
{
public static void main( String[] args )
{

int[] i1 = { 1, 2, 3, 4 };
int[] i2 = { 1, 2, 3, 4 };
boolean b = Arrays.equals( i1, i2 );
if( b )
{
System.out.println( "Same !" );
}
else
{
System.out.println( "Different !" );
}
}
}
BUY 2009-09-17
  • 打赏
  • 举报
回复
应该是equals没有重写,楼主能不能把重写的代码写出来参考参考啊,对我来说现在有点困难
fskjb01 2009-09-17
  • 打赏
  • 举报
回复
boolean b=p.equals(i1,i2);


equals没有重写啊!!不是FALSE是什么!!
ouyangyh 2009-09-17
  • 打赏
  • 举报
回复
晕,LZ方法都用错了吧
应该是Arrays.equals(a,b)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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