我無法跟蹤堆棧中的節點。我的節點包含一個2d int數組,其中包含數字0-20以及另一個整數,用於衡量進入當前節點狀態(2d int數組)的開銷。堆棧變量和.contains(對象o)
目前我不知道如何跟蹤如果我的堆棧包含一個節點,我想跳過,因爲它已經在堆棧中或之前已經彈出,所以我避免重複相同的比較具有完全相同的狀態+成本。
如果q是我的籌碼和N1是我當前的節點我只是突然,爲什麼不會
q.contains(n1);
還回是真的嗎?
我也試圖使這對每個節點創建一個字符串
防爆
1 2 4
5 3 6
0 7 8
創建字符串「一個ArrayList 1,2,4,5,3,6,0,7,8 「。如果我將這個字符串添加到數組列表,我使用 aList.contains(stringKey);永不返回真實?
我想我必須做一些對象,因爲contains()需要傳遞一個對象,而我不是100%確定如何做到這一點。
謝謝,有道理。只有一個問題,如果我要比較一個2d int數組,我是否需要檢查每個點以進行比較還是我可以像(a和b是int [] [])obj.a == obj.b? – George 2014-10-19 23:08:07
你將不得不使用每個元素。爲此使用'Arrays.equals(...)',這比手動更有效。 – afzalex 2014-10-19 23:12:13
不要忘記,如果你重寫equals,也可以重寫hashCode – Joeblade 2014-10-19 23:48:37