2015-02-08 80 views
0

如何比较两个数组的精确相等。JAVA:比较两个一维数组以确切相等

本来我就在想:

int[] array1 = new int[]{2, 0}; 
int[] array2 = new int[]{2, 0}; 
if(array1 == array2) 
//do something 

这不起作用。如果不是数组中的值,有人可以解释我在比较什么?另外我如何比较这两个数组来检查它们是否相同?

回答

0

您应该使用Arrays.equals(array1,array2),它将按照它们出现的顺序比较两个数组的元素。

当您将数组与==进行比较时,您是比较引用,所以只有在您比较对象本身时(例如array1 == array1),它才会返回true。

+0

噢好吧我以前使用过.equals,但我认为这只适用于比较字符串。谢谢! – Crouton 2015-02-08 07:49:45

+1

@Coutout实际上,它与Strings的平等不一样。 array1.equals(array2)也不起作用,因为它在Object类中使用了equals的默认实现。您必须在Arrays类中使用静态方法。 – Eran 2015-02-08 07:53:18

+0

是的,我刚刚意识到它不起作用。感谢我的更正。 – Crouton 2015-02-08 07:55:00