嘿,我目前正在學習java決賽,我很困惑於一個簡單的equals
方法。數組的等值方法是如何工作的?
給出的問題是
「鑑於以下數組聲明,什麼是以下打印」
,我想複製後然而這將是真的,假的,真實和粘貼代碼揭示答案是錯誤的,錯誤的,真實的。
據我所知,==
只適用於他們是對象的同一實例,但我不明白爲什麼第一個是假的。我試圖找到數組api中的方法,但無法找到具有相同參數的方法。
請原諒我,如果這是顯而易見的,我在過去的幾個晚上學習的時間已經很晚了,而且現在對咖啡因也很厭倦。
int[] d = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
int[] c = d;
System.out.println(d.equals(b));
System.out.println(d == b);
System.out.println(d == c);
+1提供了關於如何實現序列/值相等(而不是因爲你是Jon Skeet)的提示。 –
爲了完成這個想法,有幾個重載'Arrays.equals',以及'數組。deepEquals(Object,Object)',它可以給你一個更「自然」的平等。 – yshavit
對象有一個平等的方法....我知道我想不出來,我現在睡覺後得到它。非常感謝你幫助我理解! – Erik