我无法跟踪堆栈中的节点。我的节点包含一个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