2015-02-08 67 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