equals在数组中的用法

数组的equals方法怎么重写?有谁知道的仔细说明下,用代码说明最好!
比如:int[] a1 = new int[]{1,2,3};
int[] a2 = new int[]{1,2,3};
怎么才能用equals方法比较,得出的结果要为true;

不用重写,有现成的API方法
java.util.Arrays这个类,专门用来操作数组的,有空多看看API文档
public static boolean equals(int[] a,int[] a2)如果两个指定的 int 型数组彼此相等,则返回 true。
如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。
java.util.Arrays.equals(a1,a2); 即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-23
楼主遇到的情况不适合重写equals方法.可以使用Arrays类中的静态方法public static boolean equals(int[] arg0,int[] arg1)来对两个数组进行比较.使用方法如下.
首先引入Arrays类,在文件开头加入语句import java.util.Arrays;

程序实现:
int[] a1 = new int[] { 1, 2, 3 };
int[] a2 = new int[] { 1, 2, 3 };
boolean test=Arrays.equals(a1, a2);
System.err.println(test);

输出结果为:
true本回答被提问者采纳
第2个回答  2009-07-28
public class TestM
{
public static void main(String[] args)
{
int[] a1 = new int[]{1,2,3};
int[] a2 = new int[]{1,2,3};
boolean flag=true;
if(a1.length==a2.length)
{
for(int i=0;i<a1.length;i++)
{

String a=a1[i]+""; //把数组中的值先转换为String类型,才能用equals
String b=a2[i]+"";
if(!a.trim().equals(b.trim())) //trim()是消除左右空格
{
flag=false;
break;
}

}
}
else
{
flag=false;
}
System.out.println("数组a1和a2相等吗?答案是:"+flag);

}
}

希望对你有所帮助。
good luck to you!
第3个回答  2009-07-28
数组equals方法无法重写,
要比较2个数组使用
java.util.Arrays.equals(a1,a2);