我在Java中编写了一个方法,它接收一个数组列表,其中包含另一个大小为3的数组作为每个元素。例如{{0,0,0},{1,0,0},{1,1,0} ...}。
如果队列的头部位于此数组列表中,则该方法可以解决。
队列与数组列表具有相同的结构。
public static Queue<Integer[]> q = new LinkedList<Integer[]>();
List<Integer[]> outcomes = new ArrayList<Integer[]>();
Public static boolean outcomeSearch(List<Integer[]> outcomes){
boolean check = false;
for (int i=0; i<outcomes.size(); i++){
if (q.peek() == outcomes.get(i)){
check = true;
}
}
return check;
}
出于某种原因,我无法使用if语句。实际上,队列的头部是{0,0,0} 结果是{{0,0,0},{8,0,0},{0,5,0} ...}。所以for循环应该在第一次迭代中将check boolean设为true。但它并没有。
这个问题是比较数组中的元素,而不是整个数组本身。
答案 0 :(得分:0)
看起来问题可能就是声明队列的方式,因此也就是在方法中实现它的方式。检查您是否将队列声明为类的静态变量或实例变量。